2016-06-23 13 views
-2

Ich arbeite an einem Programm in PHP, mit dem Sie trainieren können, Berechnungen ohne einen Taschenrechner zu machen. Das Problem, auf das ich stoße, ist, dass beim Erzeugen von Zufallszahlen für die Summen peinliche Zahlen wie 4 geteilt durch 7 erhalten werden. Gibt es eine einfache Möglichkeit, einfache Summen wie 9 geteilt durch 3 zu erzeugen?php dividiere mit 'easy' Zahlen

Danke!

+2

Sie könnten Modulo verwenden, um sicherzustellen, dass die Division "einfach" ist. – Rizier123

+0

Ist das Ziel, Berechnungen zu generieren, die nicht Remainers haben? –

+0

Bitte lesen Sie [wie Sie Fragen zu StackOverflow stellen] (http://stackoverflow.com/help/how-to-ask) –

Antwort

1

Die einfachste Methode besteht darin, zwei Zufallszahlen zu generieren, die zusammen multipliziert werden. Bekommen Sie die Antwort auf das Multiplikationsproblem. Verwenden Sie dann die Antwort zusammen mit einer Ihrer ursprünglichen Zufallszahlen für Ihr Teilungsproblem. Die Antwort ist immer die zweite Zufallszahl, die Sie generiert haben.

Pseudo-Code:

$random1 = random(1, 100); 
$random2 = random(1, 100); 
$answer = $random1 * $random2; 
print("What is $answer/$random1?"); // answer is always $random2 

Sie erklären nicht, welcher Bereich von Zufallszahlen Sie verwenden, aber vorsichtig sein, nicht 0 für random1 $ zu holen.

+1

Vielen Dank, daran hatte ich nicht gedacht – Paardenstront

0

Angenommen, es gibt zwei Zahlen, die Sie zufällig $ a und $ b erhalten. Wenn Sie $ a durch $ b teilen wollen, prüfen Sie, ob $ a> $ b und prüfen Sie dann, ob der Rest Null ist. $ a% $ b == 0; Wenn ja, können Sie die Werte wiedergeben.

0

Ich habe diesen Code nicht getestet, aber es sollte überprüfen, ob die Division ist einfach oder nicht, mit der modulo character %, und rufen Sie die Funktion erneut, wenn es nicht einfach ist. Wenn die Division einfach ist, gibt sie die Zahlen als Array zurück.

function easyDivide() { 

    // Code for generating random numbers 

    if($num1 % $num2 != 0) { 
     return easyDivide(); 
    } else { 
     return array($num1, $num2); 
    } 
} 
+0

Wenn Ihr erstes Paar keine einfache Division erzeugt, gibt Ihre Funktion nichts zurück. –

+0

@gre_gor, ja, aber es würde die Funktion wieder aufrufen. Ein weiteres Zahlenpaar machen. – Kodemikkel

+0

Es gibt nichts von Ihrem zweiten Anruf zurück. –