ホームページ > バックエンド開発 > PHPチュートリアル > 算数の問題を自動的に解決します - 息子に簡単な計算の練習として与えてください o(∩_∩)o

算数の問題を自動的に解決します - 息子に簡単な計算の練習として与えてください o(∩_∩)o

WBOY
リリース: 2016-07-25 08:49:51
オリジナル
1024 人が閲覧しました
カスタム範囲、カスタム演算子、カスタム操作数。とてもクール
  1. /**
  2. * 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 functiongenerate() {
  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] . ' ' // if ($index < count($elements) - 1)//最後の数字でない場合は、末尾に演算子を追加します
  35. $question.=substr($this->operators, mt_rand(0, $operatorType - 1), 1);
  36. }
  37. eval('$anwser = ' . $question . '; ');
  38. if ($anwser < 0) { //結果が負の数である場合を除外します
  39. $elements = array();
  40. goto start; 3 support
  41. }
  42. echo "$question= " . $anwser;
  43. }
  44. /**
  45. * 範囲内のランダムな値を生成します
  46. *
  47. * @return int
  48. */
  49. protected function randomValue() {
  50. return mt_rand($this->scope[0], $ this->scope[1]);
  51. }
  52. }
コードをコピー
  1. include 'QuestionEngine.class.php';
  2. $hello = new QuestionEngine();
  3. $hello->generate();
  4. ?>
  5. 結果: 26 + 85 = 111
コードをコピー

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート