- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
//.....
public final class Random
{
static public function _int(min: int, max: int):int
{
return min + Math.round( Math.random()*(max - min));
}
//.....
static public function _Bool():Boolean
{
return (_int(0, 1) == 1);
}
//подброс монеты: орёл
static public function coinSideEagle(): Boolean
{
return _Bool();
}
//всё по-честному: решка
static public function coinSideTail(): Boolean
{
return !coinSideEagle();
}
}
Fai 05.11.2012 20:13 # +5
scriptin 05.11.2012 22:51 # +3
Lure Of Chaos 05.11.2012 23:35 # −1
LispGovno 06.11.2012 00:03 # +2
Lure Of Chaos 06.11.2012 02:54 # 0
Steve_Brown 06.11.2012 10:42 # +12
roman-kashitsyn 06.11.2012 10:59 # +1
d9k 06.11.2012 21:03 # 0
bormand 06.11.2012 22:51 # +1
А как же CoinTosser и его Factory? ;)
P.S. А вообще - шедевр.
Мистер Хэнки 10.11.2012 07:53 # 0
bormand 10.11.2012 09:13 # +6
Fai 11.11.2012 10:30 # 0
Кстати, пусть конструктор кости принимает массив значений, которые могут выпасть, тогда монетка станет часным случаем кости с двумя гранями.
Steve_Brown 12.11.2012 10:32 # +1
roman-kashitsyn 11.11.2012 10:38 # +2
Я даже не догадывался, что в жабе есть EDSL для описания вероятностных экспериментов!
3.14159265 12.11.2012 13:12 # +2
wvxvw 06.11.2012 00:18 # +1
Но в стандартную библиотеку это не попало. Есть несколько криптографических библиотек, там наверное свои велики.
guest 06.11.2012 11:51 # 0
Fai 06.11.2012 13:09 # +3
Т.к. методы coinSideEagle и coinSideTail генерируют новые рандомные булёны, то на ребро монета будет становиться очень часто.
guest 06.11.2012 13:35 # −1
Из доки на AS'овский Math.random(): "Returns a pseudo-random number n, where 0 <= n < 1."
Из кода, строка 11: return (_int(0, 1) == 1);
Видно, что _Bool() всегда возвращает "ложь" или 0. Т.е. на монете всегда выпадает "решка". На ребро она никогда не упадет.
bormand 06.11.2012 13:41 # 0
Так там же Math.round() есть. Так что ничего подобного.
guest 06.11.2012 13:44 # 0
d9k 06.11.2012 21:01 # 0