Karl das kahle Moorhuhn
Neues Mitglied
In der folgenden Funktion ist irgendein logischer Fehler und ich find ihm beim besten Willen nicht.
Das soll mit der Funktion erreicht werden:
Eine ganzzahlige Zufahlszahl zwischen 1 und 10. Und zwar mit abnehmender Wahrscheinlichkeit, d.h., je höher die Zufallszahl, desto seltener soll sie vorkommen.
Prinzip:
3 verschiedene Zufallszahlen miteinander multiplizieren und anschließen durch Division und Wurzel ziehne auf die passende Größe stutzen.
Problem:
Die Zufallszahlen liegen nicht zwischen 1 und 10, sondern zwischen 0 und >30. Wenn ich mit dem Taschenrechner nachrechne, kann ich keinen Fehler finden, denn wenn man die untere Zufallsgrenze (15) nimmt, komm ich auf 1 als Ergebnis, nehm ich 100, komm ich auf 10.
Hier die Funktionen:
Problem gelöst, war doch kein logischer Fehler, sondern ich hab bloß vergessen alten Code zu löschen, der die Variable neu definiert
Außerdem hab ich die untere Grenze noch mal leicht angepasst
Das soll mit der Funktion erreicht werden:
Eine ganzzahlige Zufahlszahl zwischen 1 und 10. Und zwar mit abnehmender Wahrscheinlichkeit, d.h., je höher die Zufallszahl, desto seltener soll sie vorkommen.
Prinzip:
3 verschiedene Zufallszahlen miteinander multiplizieren und anschließen durch Division und Wurzel ziehne auf die passende Größe stutzen.
Problem:
Die Zufallszahlen liegen nicht zwischen 1 und 10, sondern zwischen 0 und >30. Wenn ich mit dem Taschenrechner nachrechne, kann ich keinen Fehler finden, denn wenn man die untere Zufallsgrenze (15) nimmt, komm ich auf 1 als Ergebnis, nehm ich 100, komm ich auf 10.
Hier die Funktionen:
PHP:
function random($start,$end) {
mt_srand((double)microtime()*1000000);
$random = mt_rand($start,$end);
return $random;
}
function talent(){
for ($i = 1; $i < 4; $i++) {
$step[]=random(15,100);
}
$talent=1;
foreach ($step as $value) {
$talent= $talent*$value;
}
$talent=$talent/10000;
$talent=round(sqrt($talent));
return $talent;
}
echo talent();
Problem gelöst, war doch kein logischer Fehler, sondern ich hab bloß vergessen alten Code zu löschen, der die Variable neu definiert
Außerdem hab ich die untere Grenze noch mal leicht angepasst
Zuletzt bearbeitet: