![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
random(2)*2 [D7, XP]
Green-Templar © (2005-10-20 09:59:00)Это 2 раза вызов процедуры рэндом или это двойной результат одного вызова?
evvcom (2005-10-21 10:18:00) [1]
> Я же выше в 5 это указал.
Да. Теперь сообразил, что имелось в виду. Смутил [6] пост. Справка действительно говорит, что это все таки функция из System, но в System определения нет. Значит имеет место шаманство компилятора, который вызывает _RandInt или _RandExt.
Anatoly Podgoretsky (2005-10-21 09:56:00) [2]Я же выше в 5 это указал.
Random(N)эквивалентен TRUNC(Random * N)
evvcom (2005-10-21 09:44:00) [3]А.... Точно. Могли бы и в хелпе явно указать тип Random при использовании Range:
In Delphi code, Random returns a random number within the range 0 <= X < Range. If Range is not specified, the result is a real-type random number within the range 0 <= X < 1.
Не пользовался, не приходилось, но почему то думал так. Сорьки...
Anatoly Podgoretsky (2005-10-21 09:32:00) [4]evvcom © (21.10.05 09:15) [10]
random(N) имеет тип Integer, поэтому говорить, что почти равного единицы не приходится и для random(2) вероятность выпадения 1 равна 50%
evvcom (2005-10-21 09:15:00) [5]
> да, будет 0 или 2
???
> Я так понял, random(2)*2<>1 всегда, верно?
Если же все таки имеется ввиду функция вычисления (псевдо)случайного числа, то 0<=random(2)<2, тогда 0<=random(2)*2<4. 1 попадает в этот диапазон, поэтому говорить о "всегда" теоретически нельзя. Но на практике это будет почти "всегда" верно, т.к. вероятность выпадания точного значения, равного 1, стремится к 0.
cyborg (2005-10-20 21:54:00) [6]
> [8] Green-Templar (20.10.05 18:04)
да, будет 0 или 2.
Green-Templar (2005-10-20 18:04:00) [7]Я так понял, random(2)*2<>1 всегда, верно?
begin...end (2005-10-20 16:00:00) [8]> Anatoly Podgoretsky © (20.10.05 13:30) [6]
А справка считает иначе...
:-)
Anatoly Podgoretsky (2005-10-20 13:30:00) [9]Для непонятливых, random это не функция.
Anatoly Podgoretsky (2005-10-20 13:29:00) [10]В данном случае это Integer, а так random*2 Extended
evvcom (2005-10-20 10:39:00) [11]а...а... Вот в каком смысле. :)
begin...end (2005-10-20 10:35:00) [12]> evvcom © (20.10.05 10:30) [2]
Вроде, никто не запрещает объявить пользовательский тип с таким именем.
evvcom (2005-10-20 10:30:00) [13]
> приведённой к типу random
Что за тип такой? Впервые слышу.
begin...end (2005-10-20 10:06:00) [14]Это умножение результата вызова функции random на 2.
Или это умножение двойки, приведённой к типу random, на 2.