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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.05.2010, 22:15   #1
vadimozzz
 
Регистрация: 09.05.2010
Сообщений: 5
По умолчанию Random для вещественных чисел

как организовать генератор случайных вещественных чисел для интервала к примеру [1.612,1.785]?? Есть ли определенная функция?

или надо вот так и никак больше)?

Код:
randomize;
s:='1.'+inttostr(random(174)+612);
temp:=strtofloat(s);
vadimozzz вне форума Ответить с цитированием
Старый 09.05.2010, 22:27   #2
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Тут увидел функцию Randome дает float значение. А следовательно, никто не мешает брать минимальное и прибавлять разность (max - min) умноженное на рандомное float значение.
BOBAH13 вне форума Ответить с цитированием
Старый 09.05.2010, 22:40   #3
vadimozzz
 
Регистрация: 09.05.2010
Сообщений: 5
По умолчанию

функция randome ????
vadimozzz вне форума Ответить с цитированием
Старый 09.05.2010, 22:43   #4
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Сообщение от vadimozzz Посмотреть сообщение
функция randome ????
Ну ошибся я перейдите по ссылке "Тут" и посмотрите.

Цитата:
The Random function generates random numbers. They can be floating point numbers in the range :

0 <= Number < 1.0
BOBAH13 вне форума Ответить с цитированием
Старый 10.05.2010, 06:59   #5
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

vadimozzz, вообще-то, для вещественных числе нестрогий диапазон (это когда границы диапазана входят в него - обозначается квадратными скобками, развёрнутыми внутрь диапазона) — нонсенс...

но общий подход такой:
вычисляйте нужный диапазон генерации
1.785-1.612 = 0.173
т.к верхняя граница диапазона (1.785) по заданию входит в диапазон, значит нам необходимо получать числа от нуля до 0.174 включительно.
это решается через: random(175)/1000
сдвинув все числа на левую границу диапазона получаем окончательную формулу:
Код:
  temp := random(175)/1000 + 0.612;
p.s. кстати, Ваше решение тоже вполне рабочее. Единственное, random надо брать от 175, а не от 174...
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Генератор ВЕЩЕСТВЕННЫХ чисел в С++ Kotjona Помощь студентам 4 08.05.2010 00:24
Реализация деления вещественных чисел Sparky Помощь студентам 0 30.04.2010 19:46
Файл вещественных чисел. toybike Общие вопросы C/C++ 8 10.12.2009 20:02
Списки вещественных чисел. в С++ KRT Помощь студентам 2 23.07.2009 13:06
Файл вещественных чисел bullvinkle Общие вопросы C/C++ 1 18.06.2009 01:31