输出40个随机总和,不重复

时间:2017-09-17 12:16:50

标签: php

我根据学校的考试为孩子们创建了一个在线考试。

我希望根据1到10倍的表输出40个随机乘法和(7& 9次表除外)。但我不想输出之前输出的任何内容

例如:

7 X 4 =

2 X 5 =

12 X 10 =

4 X 5 =

......最多40个问题......

这样做最优雅的方式是什么?我有点难过!

我可以使用

获得1到10之间的随机数
$numbers = range(1, 10);
shuffle($numbers);

但是这仍然包括7和9.那么如何在确保没有重复的情况下生成40个总和呢?

谢谢!

1 个答案:

答案 0 :(得分:1)

$question = array();
$numbers = range(1,10);
$numbers = array_diff($numbers, [7, 9]); // Removing 7 & 9 from array as per requirement
$frontNumbers = range(1,20);
$frontNumbers =  array_merge($frontNumbers, range(1,20));
$frontNumbers =  array_merge($frontNumbers, range(1,10)); // Just to make sure we get required no of questions
shuffle($frontNumbers);
foreach($frontNumbers as $value){
    shuffle($numbers);
   $question[] = $value.','.$numbers[0];
}
$question = array_unique($question);
$question = array_slice($question,0,40);
$count = 0;
foreach($question as $row){
   $count++; 
   echo $count.') '.str_replace(',', ' x ', $row).' = <br>';
}