Форум: Форум C++Разное
Новые темы: 00
Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум C++

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Случайные значения в C++
 
 автор: belkin   (23.12.2011 в 02:21)   письмо автору
 
 

Знаю, что уже не один раз все это было, но все-таки. Столкнулся с ней и если в php надо было указать ее и буквально сразу выводилось рандом число + можно указать диапазон и вообще все легко, то тут я понял, что требуется все как-то выдирать, делить с остатком и т.д.

Можете пожалуйста объяснить, как с ней научится правильно работать, устанавливать нужный диапазон и т.д.

Спасибо за ранее!

  Ответить  
 
 автор: cheops   (23.12.2011 в 12:32)   письмо автору
 
   для: belkin   (23.12.2011 в 02:21)
 

Тут штука в том, что rand() в PHP это оболочка, которая пусть и медленнее, но зато гораздо более удобнее. В классическом C есть функция rand() из библиотеки stdlib.h. Она не принимает параметров, и возвращает случайное число в диапазоне от 0 до RAND_MAX.
#include <stdlib.h>
#include <stdio.h>

int main(void)
{
    int i;
    // Инициализируем генератор случайных чисел
    randomize();
    printf("Ten random numbers from 0 to 99\n\n");
    for(i=0; i<10; i++)
       printf("%d\n"rand() % 100);
    return 0;
}

Возвращаемое значение всегда целое, и если вам нужно случайное значение в каком-то диапазоне, вам нужно самостоятельно осуществлять нормирование. Ну например, если вам нужны случайные числа от 0 до 100, то получить их можно при помощи выражения rand() * 100 / RAND_MAX. Если вам нужны случайные числа от 300 до 500, то получить их можно по формуле 300 + rand() * (500 - 300) / RAND_MAX.

  Ответить  
 
 автор: Belkin   (24.12.2011 в 00:09)   письмо автору
 
   для: cheops   (23.12.2011 в 12:32)
 

Буду пробовать ) Спасибо!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования