Генерирование случайны чисел в С++
-
bilytur
Генерирование случайны чисел в С++
Существуют ли стандартные функции для генерации случайных чисел типа double в диапазоне от 0 до 1.
-
Guest
Re: Генерирование случайны чисел в С++
Header File
stdlib.h
Category
Math Routines
Prototype
int random(int num);
Description
Random number generator.
random returns a random number between 0 and (num-1). random(num) is a macro defined in stdlib.h. Both num and the random number returned are integers.
Return Value
random returns a number between 0 and (num-1).
//=========================================
/* random example */
#include
#include
#include
/* prints a random number in the range 0 to 99 */
int main(void)
{
randomize();
printf("Random number in the 0-99 range: %d\n", random (100));
return 0;
}
stdlib.h
Category
Math Routines
Prototype
int random(int num);
Description
Random number generator.
random returns a random number between 0 and (num-1). random(num) is a macro defined in stdlib.h. Both num and the random number returned are integers.
Return Value
random returns a number between 0 and (num-1).
//=========================================
/* random example */
#include
#include
#include
/* prints a random number in the range 0 to 99 */
int main(void)
{
randomize();
printf("Random number in the 0-99 range: %d\n", random (100));
return 0;
}
-
bilytur
Re: Генерирование случайны чисел в С++
Если они такие "стандартные", то почему их нет у меня в MSVC++ 6.0 ?
Мелкомягкие забыли включить их в состав ?
Или у каждого производителя свои "стандарты" ?
Какие "стандартные" функции есть в MSVC++ для генерации случайных чисел различной разрядности?
Это я так. Мысли вслух. Отвечать необязательно.
Ну, если только на последний вопрос.
Мелкомягкие забыли включить их в состав ?
Или у каждого производителя свои "стандарты" ?
Какие "стандартные" функции есть в MSVC++ для генерации случайных чисел различной разрядности?
Это я так. Мысли вслух. Отвечать необязательно.
Ну, если только на последний вопрос.

-
bilytur
Re: Генерирование случайны чисел в С++
И все-же хотелось бы услышать ответ.
Цитата:
Существуют ли стандартные функции для генерации случайных чисел типа double в диапазоне от 0 до 1.
Цитата:
Существуют ли стандартные функции для генерации случайных чисел типа double в диапазоне от 0 до 1.
-
bilytur
Re: Генерирование случайны чисел в С++
shurikan
Твой способ генерит случайные числа из ограниченного множества не превышающего 0x3FFFFFFF, в то время как всех возможных чисел типа double гораздо больше.
Как я понял стандартных функций для генерации случайных чисел типа double в С нет
Твой способ генерит случайные числа из ограниченного множества не превышающего 0x3FFFFFFF, в то время как всех возможных чисел типа double гораздо больше.
Как я понял стандартных функций для генерации случайных чисел типа double в С нет

-
shurikan
Re: Генерирование случайны чисел в С++
bilytur
Воспользуйся типом __int64, значащими будут 63 разряда - диапазон double перекрыт, т.е. значений гораздо больше, чем влезет в double.
[s]Исправлено: shurikan, 4:15 20-11-2003[/s]
Воспользуйся типом __int64, значащими будут 63 разряда - диапазон double перекрыт, т.е. значений гораздо больше, чем влезет в double.
[s]Исправлено: shurikan, 4:15 20-11-2003[/s]
-
shurikan
Re: Генерирование случайны чисел в С++
shurikan
Имхо чтоб был смысл в использовании __int64 нужно чтоб была функция:
__int64 random(__int64);
На самом деле дела обстоят еще хуже:
В MSVC 6 (не знаю как в других) никаких функций random(); randomize(); вообще нет!
Искал в MSDN - нет таких. В Инклудах - тоже нет.
Есть int rand( void );
Функция rand() возвращает случайное число в диапазоне 0..32767 т.е. фактически short int.
Кстати при таком раскладе даже первый твой пример не прокатывает.
Имхо чтоб был смысл в использовании __int64 нужно чтоб была функция:
__int64 random(__int64);
На самом деле дела обстоят еще хуже:
В MSVC 6 (не знаю как в других) никаких функций random(); randomize(); вообще нет!
Искал в MSDN - нет таких. В Инклудах - тоже нет.
Есть int rand( void );
Функция rand() возвращает случайное число в диапазоне 0..32767 т.е. фактически short int.
Кстати при таком раскладе даже первый твой пример не прокатывает.
-
shurikan
Re: Генерирование случайны чисел в С++
bilytur
А ты из 4-х с помощью умножений и сложений не можешь сделать __int64???
А ты из 4-х с помощью умножений и сложений не можешь сделать __int64???
-
shurikan
Re: Генерирование случайны чисел в С++
Можно конечно и с помощью умножений и сложений...
Можно и вообще свой генератор написать...
Только вопрос был вроде о стандартных функциях.
А их НЕТ.
Точка.
Можно и вообще свой генератор написать...
Только вопрос был вроде о стандартных функциях.
А их НЕТ.
Точка.
