산술 문제를 자동으로 해결 - 아들에게 빠른 계산 연습을 제공하세요 o(∩_∩)o
풀어 주다: 2016-07-25 08:49:51
自定义范围,自定义运算符,自定义运算次数。太牛逼了
- /**
- * Description of QuestionEngine
- * 出题引擎一枚
- *
- * @author lyc
- * @copyright (c) 2013, Unary Inc.
- */
- class QuestionEngine {
-
- /**
- * 出题范围
- * @var string $scope
- */
- public $scope = array(1, 100);
-
- /**
- * 包含的运算符,含有多个则混合出题
- * @var string $operators
- */
- public $operators = ' -';
-
- /**
- * 运算次数
- * @var int
- */
- public $optTimes = 1;
-
- public function generate() {
- //按运算次数产生一组数值
- start:
- for ($index = 0; $index < $this->optTimes 1; $index ) {
- $elements[] = $this->randomValue();
- }
- $operatorType = strlen($this->operators); //有几个运算符供选择
- //开始组装算式
- $question = '';
- for ($index = 0; $index < count($elements); $index ) {
- $question.=' ' . $elements[$index] . ' '; //放一个数字进来
- if ($index < count($elements) - 1)//如果不是最后一个数字的话,在后面加个运算符
- $question.=substr($this->operators, mt_rand(0, $operatorType - 1), 1);
- }
-
- eval('$anwser = ' . $question . ';');
- if ($anwser < 0) { //排除结果为负数的情况
- $elements = array();
- goto start; //需PHP5.3的支持
- }
- echo "$question= " . $anwser;
- }
- /**
- * 产生一个范围内的随机值
- *
- * @return int
- */
- protected function randomValue() {
- return mt_rand($this->scope[0], $this->scope[1]);
- }
-
- }
-
复制代码
- include 'QuestionEngine.class.php';
- $hello = new QuestionEngine();
- $hello->generate();
- ?>
-
- 结果:26 85 = 111
复制代码
|
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
-
2024-10-22 09:46:29
-
2024-10-13 13:53:41
-
2024-10-12 12:15:51
-
2024-10-11 22:47:31
-
2024-10-11 19:36:51
-
2024-10-11 15:50:41
-
2024-10-11 15:07:41
-
2024-10-11 14:21:21
-
2024-10-11 12:59:11
-
2024-10-11 12:17:31