Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> генератор случайных чисел, помогите написать 
V
    Опции темы
codelord
Дата 22.6.2009, 12:47 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 777
Регистрация: 7.5.2005
Где: ты моя темноглаза я где?!

Репутация: 1
Всего: 39



Цитата(Леопольд @  22.6.2009,  08:17 Найти цитируемый пост)
"Надо Федя, надо."  А если оторвёшь взгляд от себя любимого, то, возможно, заметишь что эту функцию я написал раньше. Но я не изобретал алгебру и потому никак не могу обвинить тебя в плагиате. Потому что придумать что-то более простое, уже не такая простая задача. Эта уж точно того не стоит...

ты написал, но не то, еще раз говорю. Ты понял фишку которую увидел только в коде, который появился позже. 

Цитата(Леопольд @  22.6.2009,  08:17 Найти цитируемый пост)
Вот abs не нужен, не спорю, но и ошибки он не вызавал, просто подтормаживал выполнение функции. Но мне не пришлось долго напрягаться что бы это выяснить. Я просто удалил его, когда появились сомнения, и прогнал через тесты. Т.е. мне теперь не надо долго думать, что же я написал, если тесты написанны достаточно п'олно и проверяют то что мне надо. Это их единственное предназначение.

Ты его удалил когда увидел код который предложил я позже,.

Цитата(Леопольд @  22.6.2009,  08:17 Найти цитируемый пост)
Ты облажался со swap'ом. Я (как автор функции) может и не задам кривой диапазон, некоторое время.

тут не нужен swap, тут нужно иметь голову, и ни одному человеку не придет в голову ввести в параметры там где from to, значения наоборот, если ты этого не способен понять , я не буду тебе это объяснять.


Цитата(Леопольд @  22.6.2009,  08:17 Найти цитируемый пост)
Почему "кривые"? Хотелось бы услышать какое-то обоснование а не голословный тявк. Если можешь написать, то напиши "ровные", а если не можешь то просто промолчи, это лучше чем тявкать на "кривые". И съёшь что-то от "озверина", например "мышьяк"

Твои тесты кривы как минимум по манере их написания, это коостылеобразный код не спутаешь ни с чем. если ты вырастешь из этго кода вернись и посмотри на него 
может и поймешь, объяснять не собираюсь, можешь вывести на голосование и увидешь результат.

Цитата(Леопольд @  22.6.2009,  08:17 Найти цитируемый пост)
Как заключение, я не хотел бы работать с таким самодовольным типом как ты в одной команде.
 не переживай, ты в нее не попадешь.


Это сообщение отредактировал(а) codelord - 22.6.2009, 12:52


--------------------
Доступен поиск по исходным кодам в GOOGLE.
http://www.google.com/codesearch
PM MAIL   Вверх
system
Дата 22.6.2009, 13:00 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 16.5.2008

Репутация: нет
Всего: 2



Цитата(Леопольд @  22.6.2009,  12:17 Найти цитируемый пост)
съёшь что-то от "озверина", например "мышьяк"

по моему это нужно сделать тебе.   smile 
PM MAIL   Вверх
Леопольд
Дата 22.6.2009, 13:15 (ссылка)    | (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 10
Всего: 13



Цитата(codelord @ 22.6.2009,  12:47)

ты написал, но не то, еще раз говорю. Ты понял фишку которую увидел только в коде, который появился позже. 

Мда... Очевидно я вернулся назад во времени...
Цитата(Леопольд @ 20.6.2009, 20:17)

Код

int rand_range(int from, int to)
{
    return from + rand() % (abs(to - from) + 1);
}

...
Это сообщение отредактировал(а) Леопольд - 20.6.2009, 20:37 

Ничего не напоминает? Интересно, ты называешь фишкой алгебру? Конечно, ты велик и могуч, если бы не ты, я бы не знал алгебру, по любому. Уверен, работать с тобой, мало удовольствия... smile


Цитата(codelord @ 22.6.2009,  12:47)

Твои тесты кривы как минимум по манере их написания, это коостылеобразный код не спутаешь ни с чем. если ты вырастешь из этго кода вернись и посмотри на него 
может и поймешь, объяснять не собираюсь, можешь вывести на голосование и увидешь результат.

Да ты, батюшка, предсказуем как три копейки... Можешь только тявкать на людей, но не объяснять. Рад что не работаю с тобой. smile
Я знаешь ли не тестер, и на плюсах не писал серьёзного софта, изучаю потихоньку, а работать, к сожалению приходистя на другом... Причём тот язык гораздо слабже С, несравнимо, я бы сказал. Мне, для обучения, этих костылей из С++ пока хватает, они будут делать то что мне надо. Результаты голосования и меряния с тобой пиписьками меня абсолютно не интересуют. Меня интересует правильный способ тестирования. Ты меня, конечно, очень расстроил, но, знаешь ли, ты не один, кто знает алгебру или тестирование...

А уж для того что бы протестировать код natusik86 эти тесты точно подойдут. И самое главное, она их поймёт! Но это расходится с твоими принципами...

Добавлено @ 13:21
Цитата(system @ 22.6.2009,  13:00)
Цитата(Леопольд @  22.6.2009,  12:17 Найти цитируемый пост)
съёшь что-то от "озверина", например "мышьяк"

по моему это нужно сделать тебе.   smile

Я зверею только когда мне хамят. Не беси меня!!!  smile 
А вообще, мне всегда казалось что подобные форумы нужны для того, что-бы обмениваться мнениями а не поливать друг-друга грязью. Но так кажется явно не всем...

Это сообщение отредактировал(а) Леопольд - 22.6.2009, 21:05


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
azesmcar
Дата 22.6.2009, 13:47 (ссылка) |    (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 81
Всего: 211



Развели спор на несколько страниц..вообще это я первым написал функцию rand_range и НЕ БЕСИТЕ МЕНЯ!!!  smile 
Отныне все кто будет писать функцию и назовет ее rand_range должен спрашивать у меня авторские права smile 

Цитата(Леопольд @  22.6.2009,  13:15 Найти цитируемый пост)
Я знаешь ли не тестер

Цитата(Леопольд @  22.6.2009,  13:15 Найти цитируемый пост)
Меня интересует правильный способ тестирования

читать как "я не тестер, но хочу им стать"?

Цитата(Леопольд @  22.6.2009,  13:15 Найти цитируемый пост)
А уж для того что бы протестировать код natusik86 эти тесты точно подойдут. 

А вам не кажется что топикстартеру это тестирование как трамваю шоколадка?

Это сообщение отредактировал(а) azesmcar - 22.6.2009, 13:55
PM   Вверх
Леопольд
Дата 22.6.2009, 14:13 (ссылка)    | (голосов:4) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 10
Всего: 13



Цитата(azesmcar @ 22.6.2009,  13:47)
Развели спор на несколько страниц..вообще это я первым написал функцию rand_range и НЕ БЕСИТЕ МЕНЯ!!!  smile 
Отныне все кто будет писать функцию и назовет ее rand_range должен спрашивать у меня авторские права smile 

Цитата(Леопольд @  22.6.2009,  13:15 Найти цитируемый пост)
Я знаешь ли не тестер

Цитата(Леопольд @  22.6.2009,  13:15 Найти цитируемый пост)
Меня интересует правильный способ тестирования

читать как "я не тестер, но хочу им стать"?

Цитата(Леопольд @  22.6.2009,  13:15 Найти цитируемый пост)
А уж для того что бы протестировать код natusik86 эти тесты точно подойдут. 

А вам не кажется что топикстартеру это тестирование как трамваю шоколадка?

Я хочу тестировать правильно и хорошо свой код, а не чужой. Хотя, иногда, когда не уверен в чужом коде, быстрее протестировать его самому...

Скорее всего она уже сюда не заглянет. Если только шоколадкой поманить... smile

Я восстанавливал справедливость!!!   smile 

Это сообщение отредактировал(а) Леопольд - 22.6.2009, 14:14


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
zim22
Дата 22.6.2009, 14:17 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 24
Всего: 69



Цитата(Леопольд @  22.6.2009,  14:13 Найти цитируемый пост)
Я хочу тестировать правильно и хорошо свой код, а не чужой.

я не понял, что вы хотели сказать этой фразой. уточните пожалуйста.
1) вы свой код тестируете правильно и хорошо, а сюда выложили "каку" - т.к. код чужой, а вы для него только функциональный тест написали.
2) что вам мешает тестировать "правильно", "чудесно", "обаятельно" и "хорошо"? smile и что вы понимаете под этими словами?

Это сообщение отредактировал(а) zim22 - 22.6.2009, 14:41


--------------------
PM MAIL   Вверх
Леопольд
Дата 22.6.2009, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 10
Всего: 13



Цитата(zim22 @ 22.6.2009,  14:17)
Цитата(Леопольд @  22.6.2009,  14:13 Найти цитируемый пост)
Я хочу тестировать правильно и хорошо свой код, а не чужой.

я не понял, что вы хотели сказать этой фразой. уточните пожалуйста.

Я ответил на вопрос
Цитата(azesmcar @ 22.6.2009,  13:47)

читать как "я не тестер, но хочу им стать"?

Я выложил сюда то, как я стал бы тестировать сейчас если бы это было моя функция, потому что по другому не умею, пока.

Я с большим интересом взглянул бы на Ваши тесты.

А вообще, считаю правильным объясняться с людьми на их уровне понимания, когда возможно. Если они не используют в коде стандартную библиотеку, то маловерятно, что они будут переписывать уже написанный код. Правда следует учитывать что узнать что делают функции swap, abs не так сложно, как, например, bind2nd в списке аргументов transform. Рассуждать я могу только основываясь на том, сколько времени я сам потратил на понимание этих функций. На swap ушло гораздо меньше...

Это сообщение отредактировал(а) Леопольд - 22.6.2009, 15:25


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
system
Дата 22.6.2009, 15:13 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 48
Регистрация: 16.5.2008

Репутация: нет
Всего: 2



Цитата(Леопольд @  22.6.2009,  09:15 Найти цитируемый пост)
Я зверею только когда мне хамят. Не беси меня!!!  smile 

жаль не могу поставить тебе минус, а так хочется  smile 


PM MAIL   Вверх
zim22
Дата 22.6.2009, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 24
Всего: 69



Цитата(Леопольд @  22.6.2009,  15:12 Найти цитируемый пост)
Я с большим интересом взглянул бы на Ваши тесты.

а смысл? вот пример тестов Гугла. я раньше CPPUNIT использовал, сейчас в GoogleTest разбираюсь smile

Код

// Copyright 2005, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
//     * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
//     * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
//     * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

// A sample program demonstrating using Google C++ testing framework.
//
// Author: [email protected] (Zhanyong Wan)


// This sample shows how to write a more complex unit test for a class
// that has multiple member functions.
//
// Usually, it's a good idea to have one test for each method in your
// class.  You don't have to do that exactly, but it helps to keep
// your tests organized.  You may also throw in additional tests as
// needed.

#include "sample2.h"
#include <gtest/gtest.h>

// In this example, we test the MyString class (a simple string).

// Tests the default c'tor.
TEST(MyString, DefaultConstructor) {
  const MyString s;

  // Asserts that s.c_string() returns NULL.
  //
  // <TechnicalDetails>
  //
  // If we write NULL instead of
  //
  //   static_cast<const char *>(NULL)
  //
  // in this assertion, it will generate a warning on gcc 3.4.  The
  // reason is that EXPECT_EQ needs to know the types of its
  // arguments in order to print them when it fails.  Since NULL is
  // #defined as 0, the compiler will use the formatter function for
  // int to print it.  However, gcc thinks that NULL should be used as
  // a pointer, not an int, and therefore complains.
  //
  // The root of the problem is C++'s lack of distinction between the
  // integer number 0 and the null pointer constant.  Unfortunately,
  // we have to live with this fact.
  //
  // </TechnicalDetails>
  EXPECT_STREQ(NULL, s.c_string());

  EXPECT_EQ(0, s.Length());
}

const char kHelloString[] = "Hello, world!";

// Tests the c'tor that accepts a C string.
TEST(MyString, ConstructorFromCString) {
  const MyString s(kHelloString);
  EXPECT_TRUE(strcmp(s.c_string(), kHelloString) == 0);
  EXPECT_EQ(sizeof(kHelloString)/sizeof(kHelloString[0]) - 1,
            s.Length());
}

// Tests the copy c'tor.
TEST(MyString, CopyConstructor) {
  const MyString s1(kHelloString);
  const MyString s2 = s1;
  EXPECT_TRUE(strcmp(s2.c_string(), kHelloString) == 0);
}

// Tests the Set method.
TEST(MyString, Set) {
  MyString s;

  s.Set(kHelloString);
  EXPECT_TRUE(strcmp(s.c_string(), kHelloString) == 0);

  // Set should work when the input pointer is the same as the one
  // already in the MyString object.
  s.Set(s.c_string());
  EXPECT_TRUE(strcmp(s.c_string(), kHelloString) == 0);

  // Can we set the MyString to NULL?
  s.Set(NULL);
  EXPECT_STREQ(NULL, s.c_string());
}



Это сообщение отредактировал(а) zim22 - 22.6.2009, 16:26


--------------------
PM MAIL   Вверх
Леопольд
Дата 22.6.2009, 16:37 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 10
Всего: 13



Цитата(zim22 @ 22.6.2009,  16:25)
Цитата(Леопольд @  22.6.2009,  15:12 Найти цитируемый пост)
Я с большим интересом взглянул бы на Ваши тесты.

а смысл? вот пример тестов Гугла. я раньше CPPUNIT использовал, сейчас в GoogleTest разбираюсь smile

Не находите что мои "кривые" тесты, гораздо понятнее новичку? smile


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
zim22
Дата 22.6.2009, 16:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 24
Всего: 69



Цитата(Леопольд @  22.6.2009,  16:37 Найти цитируемый пост)
Не находите что мои "кривые" тесты, гораздо понятнее новичку?

согласен. мне они даже симпатичны smile
единственное, я бы добавил в тесты проверку на генерацию всех чисел из диапазона
Код

//test case [3,-7]
        {          
            std::map<int, int> distribution;
            for(i=0; i< 1000000; ++i){                
                res = rand_range(3,-7);
                distribution[res]++;
                if(res > 3 || res < -7)
                    throw test_case("test case [3,-7] fails");
            }
            // ф-я checkDistribution кидает exception(test failed), если
            // какое-либо число из диапазона не представлено или количество
            // выпадений любых двух чисел отличается на порядок.                        
            checkDistribution(distribution, int start_range, int finish_range);             
        }



--------------------
PM MAIL   Вверх
Леопольд
Дата 22.6.2009, 20:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 943
Регистрация: 17.6.2009

Репутация: 10
Всего: 13



Я думал об этом, но мне это показалось лишним для данной задачи. Её скорее всего интересовал именно диапазон а не качество ГПСЧ. Мне показалось что она не пишет генератор, а просто пользуется библиотечным. smile Написать хороший ГПСЧ не так просто. Надо быть хорошо подкованным теоретически. Я вот помню ещё, что есть такая штука как мат.ожидание...

CPPUNIT стоящая вещь? Как считаете, окупится время, потраченное не неё?


--------------------
вопросов больше чем ответов
PM MAIL   Вверх
zim22
Дата 23.6.2009, 08:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


depict1
****


Профиль
Группа: Завсегдатай
Сообщений: 2682
Регистрация: 15.1.2009
Где: Украина

Репутация: 24
Всего: 69



Цитата(Леопольд @  22.6.2009,  20:59 Найти цитируемый пост)
CPPUNIT стоящая вещь?

попробовать поработать с ней стоит. а потом уже сами решите, что для вас лучше.


--------------------
PM MAIL   Вверх
Страницы: (3) Все 1 2 [3] 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0973 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.