Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用php在每个随机操作数之后生成随机运算符?_Javascript_Php_Html - Fatal编程技术网

Javascript 如何使用php在每个随机操作数之后生成随机运算符?

Javascript 如何使用php在每个随机操作数之后生成随机运算符?,javascript,php,html,Javascript,Php,Html,以下是我的随机操作数生成器代码: $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=>$

以下是我的随机操作数生成器代码:

$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 />"; 
}
$randomOperators=array();
//在$i上循环n次
对于($i=0;$i$value1){
echo$value1“
”; }
但是如何在每个随机操作数之后生成随机运算符呢

这是我的表格,用户将通过它输入n个问题,这些问题的随机序列包含n个(用户想要的操作数的数量,他可以在1到10个范围内输入)操作数和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>

选择问题数量:


选择序列号: 2. 3. 4. 5. 6. 7. 8. 9 10

选择数字类型(以数字为单位): 1. 2. 3.



选择操作:
附加 减法 乘法 分部





表格1字段中的问题数量,即用户希望随机获得的问题数量。 第二个字段是序列号,即用户希望在该序列中输入多少个操作数(如果他输入了6或1到10之间的任何数字,则在填充所有字段后,将在末尾生成6个操作数和5个运算符及其ans的序列)。 第三个字段是位数,即用户wnat生成序列的位数,我只给出最多3位数的choce。 最后,用户希望对序列执行哪些操作

我知道这是一项非常棘手的任务,但我也知道。
我该怎么做呢?

下面是我如何生成一系列整数和操作数的方法

注意如何需要额外检查以避免被零除

另外,如上所述,您真的希望在代码中评估结果吗

 <?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);
?>

您是只想打印,还是还想计算?如果要计算,需要什么运算符优先级?科学的还是直接的?嘿,非常感谢你的回答,是的,我也想在输出中生成结果以及表达式,我如何生成整个表达式?请注意,这里有几个悬而未决的问题,例如运算符优先级;以及在何时何地进行一轮的分区结果。非常感谢它的工作。。!事实上,我早就应该指定序列是随机生成的,所以运算符的顺序在这里实际上并不重要。输出将取决于用户通过我创建的表单给出的输入。嘿,ben,你的回答真的很有帮助,非常感谢。但是我需要另一个帮助,我已经更新了这个问题,你能看一下并给我一些建议吗?那太好了。