Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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.


Наверх

Титульная страница Поиск, карта сайта Написать письмо