> 백엔드 개발 > PHP 튜토리얼 > 산술 문제를 자동으로 해결 - 아들에게 빠른 계산 연습을 제공하세요 o(∩_∩)o

산술 문제를 자동으로 해결 - 아들에게 빠른 계산 연습을 제공하세요 o(∩_∩)o

WBOY
풀어 주다: 2016-07-25 08:49:51
원래의
1012명이 탐색했습니다.
自定义范围,自定义运算符,自定义运算次数。太牛逼了
  1. /**
  2. * Description of QuestionEngine
  3. * 出题引擎一枚
  4. *
  5. * @author lyc
  6. * @copyright (c) 2013, Unary Inc.
  7. */
  8. class QuestionEngine {
  9. /**
  10. * 出题范围
  11. * @var string $scope
  12. */
  13. public $scope = array(1, 100);
  14. /**
  15. * 包含的运算符,含有多个则混合出题
  16. * @var string $operators
  17. */
  18. public $operators = ' -';
  19. /**
  20. * 运算次数
  21. * @var int
  22. */
  23. public $optTimes = 1;
  24. public function generate() {
  25. //按运算次数产生一组数值
  26. start:
  27. for ($index = 0; $index < $this->optTimes 1; $index ) {
  28. $elements[] = $this->randomValue();
  29. }
  30. $operatorType = strlen($this->operators); //有几个运算符供选择
  31. //开始组装算式
  32. $question = '';
  33. for ($index = 0; $index < count($elements); $index ) {
  34. $question.=' ' . $elements[$index] . ' '; //放一个数字进来
  35. if ($index < count($elements) - 1)//如果不是最后一个数字的话,在后面加个运算符
  36. $question.=substr($this->operators, mt_rand(0, $operatorType - 1), 1);
  37. }
  38. eval('$anwser = ' . $question . ';');
  39. if ($anwser < 0) { //排除结果为负数的情况
  40. $elements = array();
  41. goto start; //需PHP5.3的支持
  42. }
  43. echo "$question= " . $anwser;
  44. }
  45. /**
  46. * 产生一个范围内的随机值
  47. *
  48. * @return int
  49. */
  50. protected function randomValue() {
  51. return mt_rand($this->scope[0], $this->scope[1]);
  52. }
  53. }
复制代码
  1. include 'QuestionEngine.class.php';
  2. $hello = new QuestionEngine();
  3. $hello->generate();
  4. ?>
  5. 结果:26 85 = 111
复制代码


원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿