Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2012, 22:40   #1
Onni
Форумчанин
 
Аватар для Onni
 
Регистрация: 28.12.2008
Сообщений: 134
По умолчанию генерация вещественных случайных чисел от 0 до 1 (С++)

знаю есть функция rand()
применяю ее rand()%1;
выдает либо 0, либо 1.
а нужны вещественные.
нашла где то в инете:
rand()%1/m;
где m - это сколько знаков после запятой.
но и там получается либо 0, либо 1 в независимости от того чему будет равно m.
Onni вне форума Ответить с цитированием
Старый 13.03.2012, 22:44   #2
bananasus
Пользователь
 
Аватар для bananasus
 
Регистрация: 24.01.2011
Сообщений: 67
По умолчанию

float x = (rand()%100)/100;
числа будут от 0 до 1
bananasus вне форума Ответить с цитированием
Старый 13.03.2012, 23:08   #3
Onni
Форумчанин
 
Аватар для Onni
 
Регистрация: 28.12.2008
Сообщений: 134
По умолчанию

Цитата:
Сообщение от bananasus Посмотреть сообщение
float x = (rand()%100)/100;
числа будут от 0 до 1

у меня выводится либо 0, либо 1.
Onni вне форума Ответить с цитированием
Старый 13.03.2012, 23:12   #4
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

Код:
float x = (rand()%100)/(100 * 1.0);
не забывайте что / это целочисленное деление.... когда делишь на целое число или целочисленный тип... домножая на 1.0 знаменатель но не округляется тогда... успехов...
пишу код не только за печеньки
VIK_aka_TOR вне форума Ответить с цитированием
Старый 13.03.2012, 23:13   #5
Vago
Форумчанин
 
Регистрация: 15.01.2010
Сообщений: 948
По умолчанию

r = rand() / double( RAND_MAX ) ;
Vago вне форума Ответить с цитированием
Старый 13.03.2012, 23:16   #6
Onni
Форумчанин
 
Аватар для Onni
 
Регистрация: 28.12.2008
Сообщений: 134
По умолчанию

Цитата:
Сообщение от VIK_aka_TOR Посмотреть сообщение
Код:
float x = (rand()%100)/(100 * 1.0);
не забывайте что / это целочисленное деление.... когда делишь на целое число или целочисленный тип... домножая на 1.0 знаменатель но не округляется тогда... успехов...
используя как вы сказзали получаются всегда одни и теже числа, а как чтобы генерация шла всегда поразному, разные числа...
Onni вне форума Ответить с цитированием
Старый 13.03.2012, 23:20   #7
VIK_aka_TOR
Участник клуба
 
Аватар для VIK_aka_TOR
 
Регистрация: 30.01.2011
Сообщений: 1,578
По умолчанию

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

Код:
#include <time.h> // библиотека для использования времени
....
srand(time(NULL)); // выставление зерна... указывается значение в секунда от создания Unix насколько я помню до теперешнего времени (запущенного )
или же можете попробовать просто
Код:
randomize();
также прописав его в самом начае программы... задает набор псевдослучайных чисел...

в случае чего в обоих вероятнее всего потребуется подключить библиотеку stdlib.h
пишу код не только за печеньки

Последний раз редактировалось VIK_aka_TOR; 13.03.2012 в 23:25.
VIK_aka_TOR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Генерация случайных чисел Vodolazky Помощь студентам 1 14.12.2011 16:29
Генерация случайных чисел LBlonde Общие вопросы по Java, Java SE, Kotlin 4 30.11.2011 21:20
Генерация Случайных Чисел kop Помощь студентам 3 13.11.2011 23:43
Генератор случайных ВЕЩЕСТВЕННЫХ чисел (Паскаль) igor_564 Помощь студентам 12 19.11.2010 01:24
Генерация случайных чисел от -1 до 1 Shketer Общие вопросы Delphi 4 19.12.2009 23:43