0 レビュー
1 回答
javascript-phpを使用して各ランダムオペランドの後にランダム演算子を生成する方法は?
ランダムオペランドジェネレータのコードは次のとおりです。
$randomOperands = array();
// do a loop over $i n times
for ($i = 0; $i <= 10; $i ++) {
// assign random operand to array slot
$randomOperands[] = rand(0, 9);
}
// print array values:
foreach($randomOperands as $key=>$value1){
echo $value1 "<br />";
}
しかし、各ランダムオペランドの直後にランダム演算子を生成するにはどうすればよいですか?
これは、ユーザーが入力を行うための私のフォームであり、n(ユーザーが必要とするオペランドの数、1から10の範囲内でこれに入力を与えることができる)オペランドを含むランダムなシーケンスを持つ質問のn個と生成ボタンをクリックすると、n-1個の演算子とシーケンスの回答が生成されます。
<form action="" method="POST">
Select no.of questions:<input type="number" name="que" value="que">
<br>
<br>
Select no. of series: <select name="select">
<option value="0"> 2 </option>
<option value="1"> 3 </option>
<option value="2"> 4 </option>
<option value="3"> 5 </option>
<option value="4"> 6 </option>
<option value="5"> 7 </option>
<option value="6"> 8 </option>
<option value="7"> 9 </option>
<option value="8"> 10 </option>
</select>
<br><br>
Select number type(in digits) :
<select name="select_box">
<option value="0">1</option>
<option value="1"> 2 </option>
<option value="2"> 3 </option>
<br><br>
</select>
<br /><br />
Select operations:<br />
<input type="checkbox" id="add" name="operation" value="addition"
onclick="doOperation()"><label>Addition</label>
<input type="checkbox" id="sub" name="operation" value="subtract"
onclick="doOperation()"><label>Subtraction</label>
<input type="checkbox" id="mult" name="operation" value="multiply"
onclick="doOperation()"><label>Multiplication</label>
<input type="checkbox" id="div" name="operation" value="divide"
onclick="doOperation()"><label>Division</label>
<br><br>
<br><br>
<input type="submit" name="submit" value="Generate"><br>
<br>
</form>
ここで、フォームの1番目のフィールドは、質問の数、つまり、ユーザーがランダムな順序で取得したい質問の数です。 2番目のフィールドはありません。シリーズの、つまり、ユーザーがそのシーケンスで必要なオペランドの数(6または1から10までの任意の数を入力した場合、6つのオペランドと5つの演算子のシーケンスとそれらの回答は、すべてのフィールドに入力した後、最後に生成されます)。 3番目のフィールドはありません。桁数、つまり、ユーザーがシーケンスを生成する桁数については、3桁までの選択肢しか与えていません。 最後に、ユーザーがシーケンスに対して実行したい操作
私はその非常にトリッキーなタスクを知っていますが、インターセットも知っています。 どうすればいいですか?
わからない
0
レビュー
答え :
解決策:
整数とオペランドの文字列を生成する方法は次のとおりです。
ゼロ除算を回避するために追加のチェックがどのように必要であるかに注意してください。
また、上記のように、実際に結果をコードで評価しますか?
<?php
$potentialOperands = array('+', '-', '*', '/'); //Keep division as the last operand here
$previousInt = null; //Track the previous operand, else we'll get division by zero
$randomIntegers = array();
$randomOperands = array();
// do a loop over $i n times
for ($i = 0; $i <= 10; $i ++) {
// assign random operand to array slot
$nextInt = rand(0, 9);
$randomIntegers[] = $nextInt;
if($i < 10){ //No operand after last integer
if($previousInt === 0){
//Make sure to avoid a potenial division-by-zero
$randomOperands[] = $potentialOperands[rand(0, 2)];
}
else{
$randomOperands[] = $potentialOperands[rand(0, 3)];
}
}
$previousInt = $nextInt;
}
// print array values:
$exp = '';
foreach($randomIntegers as $key=>$value1)
{
$exp .= $value1 . " ";
if(isset($randomOperands[$key])){
$exp .= $randomOperands[$key] ." ";
}
}
$res = eval("return ($exp);");
//Generates answer rounded to 3 decimal places
//The answer uses standard PHP operator precedence
printf("%s = %.3f", $exp, $res);
?>
わからない
同様の質問
私たちのウェブサイトで同様の質問で答えを見つけてください。