Написал код:
static double b1 = (((double)rand())/(double)RAND_MAX);
static double R1 = (((double)rand())/(double)RAND_MAX);
И программа один раз зарандомила числа эти, а все остальные разы, те же самые числа и берёт, а мне надо чтобы каждый раз она заного их рандомила, в чём проблема? как сделать? А потом сколько раз я не перезапускаю программу, студио, компьютер, числа всё равно остаются которые она один раз срандомила
П.С. Данный код написан в Form1.h
22 февраля 2010 в 12:00
#pragma endregion
static double TimeNow = 0;
static double b1 = (((double)rand())/(double)RAND_MAX);
static double b2 = (((double)rand())/(double)RAND_MAX);
static double b3 = (((double)rand())/(double)RAND_MAX);
static double fact (double a) {
int c = 1;
for (int i = 1; i < a; i++) {
c = c*i;
}
return c;
}
static double num1=100*exp(log(2.0)*b1)*exp(-2.0)/fact(b1);
static double num2=100*exp(log(2.0)*b2)*exp(-2.0)/fact(b2);
static double num3=100*exp(log(2.0)*b3)*exp(-2.0)/fact(b3);
Всегда выдаёт одни и те же числа. Это в объявление. Потом идут реакции по нажатию кнопок.
21 февраля 2010 в 18:02
Что не работает? Вы хотя бы код свой показали.
Вот рабочий вариант: //paste.org.ru/?6t2gdr
21 февраля 2010 в 15:05
Какие есть ещё идеи, почему не работает?
20 февраля 2010 в 20:05
Опс… не заметил
20 февраля 2010 в 20:00
№16 – прочитай сообщение №7
Василий ~ Bored ~ Рейсер – отправил мыло
20 февраля 2010 в 18:04
а в си нету randomize или как тот так???
комманда которая заново чтото там инициализирует или вызывает в генераторе случайный чисел чтобы случайные числа были разными?
она имхо во всех языках в хелпе рядом с rand – написанна.
20 февраля 2010 в 18:04
Ну, типа, srand(time(0));… //time() в time.h
20 февраля 2010 в 18:03
Личка закрыто
20 февраля 2010 в 18:02
Интересует как решить эту проблему, поэтому любые варианты пойдут
20 февраля 2010 в 18:02
напиши мыло в личку – я пришлю хтмлку с исходным кодом и объяснениями по теме
20 февраля 2010 в 18:01
по идее, должно было выставить генератор ПСЧ на другое начальное значение (по текущему времени)… странно…
20 февраля 2010 в 18:01
можно воспользоваться альтернативным ГПСЧ ( например алгоритм Парка-Миллера) если интересует, могу скинуть текст
20 февраля 2010 в 18:00
Дмитрий, не сработало
20 февраля 2010 в 17:05
#include <ctime>
…
srand((unsigned)time(NULL));
xxx = (((double)rand())/(double)RAND_MAX);
мне помогло в похожем случае
20 февраля 2010 в 17:05
Василий ~ Bored ~ Рейсер, извините, я имел ввиду намек на то чтобы Вы почитали про srandom функцию.
20 февраля 2010 в 17:03
Ричард, у него венда
20 февраля 2010 в 17:02
static дает то, что значение числа считается один(1) раз)
20 февраля 2010 в 17:02
Ну так пускай он считает их каждый раз когда я запускаю программу 1 раз, а в чём проблема? Программа закончила работать, запустил её снова, он снова посчитал эти значения и с рандомил новые числа.
20 февраля 2010 в 17:02
man srandom
20 февраля 2010 в 17:02
Ричард Столлман, ответ не понятен.