Bedeutung von : rand() % 100 ?

Hallo,

was genau bedeutet der Operator % in diesem Zusammenhang? Die Zeile gibt zufällige Zahlen zwischen 0 und 100 zurück, aber wie passt das % da hinein? Ist das nicht normalerweise in PHP für SHL gedacht?

Danke

Daniel

Hallo Daniel !

Hallo,

was genau bedeutet der Operator % in diesem Zusammenhang? Die
Zeile gibt zufällige Zahlen zwischen 0 und 100 zurück, aber
wie passt das % da hinein? Ist das nicht normalerweise in PHP
für SHL gedacht?

% ist Modulo, also Rest bei ganzzahliger Division
http://de.php.net/manual/de/language.operators.arith…

SHL ist

rand() % 100

ist identisch mit

rand(0,99)

da rand() zunächst eine Zufallszahl zwischen 0 und der systemabhängigen Konstanten RAND_MAX liefert, und anschliessend mit % der ganzzahlige Rest der Division durch 100 berechnet wird (Modulo).

0 % 100 = 0 ( 0 / 100 = 0, Rest 0 )
1 % 100 = 1 ( 1 / 100 = 0, Rest 1 )
.
.
99 % 100 = 99 ( 99/ 100 = 0, Rest 99 )
100 % 100 = 0 (100/ 100 = 1, Rest 0 )
101 % 100 = 1 (101/ 100 = 1, Rest 1 )
.
.

Gruß,
Peti

Hallo,

danke, jetzt hab ich’s auch kapiert. Also ist das Ganze nur eine Art möglichst kryptisch zu programmieren, und evtl. auch noch ineffektiv, da zusätzlich noch ein Modulo berrechnet werden muss.

Daniel