[Monkey] Rand
Übersicht![](/themes/Standard/arrow.png)
![](/themes/Standard/arrow.png)
BBPro2Betreff: Rand |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hier eine gleichverteilte Zufallsfunktion für Integer unter Monkey.
Verwendet man einfach die gegebene Rnd (a, b) von Monkey erhält man aufgrund von seltsamen Rundungseigenschaften Monkeys keine gleichverteilung und teilweise sehr seltsame Ergebnisse z.B. enthält x bei Local x: Int = Rnd (-1, 1) mit einer Wahrscheinlichkeit von (2^32 - 1) / 2^32 die Zahl 0 und mit der vernachlässigbaren WK von 1 / 2^32 (also quasi NIE) die Zahl -1 Hier die entsprechenden Funktionen für Integer unter Monkey. Die Verteilung ist absolut gleichverteilt von low bis (high-1) Code: [AUSKLAPPEN] 'summary: Returns either 0 or 1. Function Rand: Int () Return Rand (0, 2) End 'summary: Returns a random int in the range 0 (inclusive) to range (exclusive). Function Rand: Int (range: Int) Return Rand (0, range) End 'summary: Returns a random int in the range low (inclusive) to high (exclusive). Function Rand: Int (low: Int, high: Int) Local v: Float = Rnd (low, high) if (v < 0) Then v -= 1.0 Local vi: Int = Int (v) if vi = (low - 1) Then vi = Min (-1, high) Return vi End |
||
![]() |
DAK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Würds nicht mehr Sinn machen, high und low inklusive zu machen? | ||
Gewinner der 6. und der 68. BlitzCodeCompo |
BBPro2 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Standardmässig ist low inklusive und high exklusive und daher
habe ich mich einfach an diesen Standard gehalten. Beziehe mich hierbei auf das Verhalten von Rnd in Monkey, Java und C++ In BB/B+/B3d ist es tatsächlich inklusive soweit ich weiß. Wie es in BMax ist weiß ich nicht. Aber da Rnd in Monkey incl-excl. ist sollte sich Rand wohl am Besten genauso verhalten |
||
Übersicht
![](/themes/Standard/arrow.png)
![](/themes/Standard/arrow.png)
Powered by phpBB © 2001 - 2006, phpBB Group