7

私は数学の先生で、動的な数学をWebサイトに挿入したいと思っています。私が達成したいのは、生徒が押すことで質問をランダムに変化させることができるボタンを用意して、同じタイプの質問であるが番号が異なるようにすることです。例えば、

ax ^ 2 + bx + cの形式の2次式を因数分解します。ここで、a = 1であり、bとcは1から100までの正の整数であり、根は実数の整数になります。

データベース(MySQLなど)に保存されている数学(たとえば、以下のマークアップ)をエンコードするためにMathMLを使用している場合、コンピューターが自動的かつランダムに数学式を変更するように設定するにはどうすればよいですか?上記の?サーバーサイドスクリプトについてはよくわかりません...PHPでこれを実現できますか?それとも、これはクライアント側のJavaScriptの仕事でしょうか?学習パスの選択をガイドするためのアドバイスを探しています。ありがとうございました

<math xmlns='http://www.w3.org/1998/Math/MathML'>
 <mrow>
  <msup>
   <mi>x</mi>
   <mn>2</mn>
  </msup>
  <mo>+</mo>
  <mrow>
   <mn>7</mn>
   <mo>&#8290;</mo>
   <mi>x</mi>
  </mrow>
  <mo>+</mo>
  <mn>12</mn>
 </mrow>
</math>
4

7 に答える 7

3

1つの方法は、一般的な数式をデータベースに保存することです。つまり、与えた例ですax^2 + bx + c。と呼ばれるデータベースの例formulas

id_formulas  formula_problem      constants           type         formula_solution
1            ax^2 + bx + c = 0    a{split}b{split}c   polynomial   x = (-1*{b} + ({b}^2 - 4*{a}*{c}) ) / 2*{a} {split} x = (-1*{b} - ({b}^2 - 4*{a}*{c}) ) / 2*{a}
2            y = mx + b           b{split}m{split}y   graph        x = ({b} - {y}) / -1*{m}        
3            etc                  etc                 etc          etc

次に(擬似コード):

  1. アプリはデータベースからランダムを取得formula_problemします(任意のタイプまたは特定のタイプのいずれか)
  2. アプリは、ランダムに生成された数値を定数に割り当てます。つまり、「b = 1、m = 2、y =.5」
  3. appは、定数をformula_solutionステップ2の数値と交換します(内部は{}非常に簡単に見つけることができます)
  4. アプリはxを解決し、回答を暗号化します(2次の場合、2つの回答がSplit("{split}")配列にあります)
  5. アプリがウェブブラウザに表示され、生徒に「y = mx+b」と「b=1、m = 2、y=.5」を解くように求めます。
  6. アプリはまた、暗号化された回答をWebページの非表示のフォームフィールドに配置します
  7. 生徒はxを解き、テキストボックスに「回答」と入力して、[送信]ボタンをクリックします。
  8. アプリは、学生のソリューションを復号化された隠しソリューションと比較します
  9. アプリはウェブブラウザに表示されます:「正解/不正解」と正解

このWebアプリケーションは、Java / C#.NET / VB.NET /PHP/任意のWebテクノロジで記述できます。データベースはSQLServer/ MySQL / PostgreSQL / XML/etcです。処理はすべて、前述の言語のいずれかでサーバー側で実行できます。または、データベースからデータ(式)が取得されると、クライアント側のJavaScriptで処理を実行できます。

開発者がとることができる多くのアプローチがあり、それは好みに帰着するので、この質問は非常に自由形式です。私の個人的な意見では、サーバー側のC#やPHPと比較して、クライアント側のJavaScriptでこれらの一部をプログラムするのは難しいでしょう。

すでにコンピュータ言語、つまりC ++を知っている場合は、似たようなスクリプトテクノロジを選択し、本やオンラインチュートリアル/コード例を読んで学習を開始してください。

(申し訳ありませんが、私は数学の男ではありません)

于 2010-10-23T15:09:03.977 に答える
1

サーバー側で行うかクライアント側で行うかはそれほど重要ではありません。私は通常、クライアント側であらゆる種類の処理を行うことを好みます。これは、学生ごとにランダムである必要があるため、このためにサーバーの処理時間を追加する理由がないためです。

MySQLデータベースからどのように読み取りますか?そのサーバー側スクリプトから返されたデータを簡単に操作できます。それを実装する方法については、非常に使いやすいjQueryプラグインをお勧めします:jQuery xmlObjectifier

フローは次のとおりです。StudentExcersizeページが読み込まれ、mathml xmlオブジェクトが要求され、mysqlから返された後、動的にxmlが読み込まれ、jsオブジェクト(json)に変換されてから、オブジェクトのデータに対してランダム化が実行されます。終了したら、学生ページのコンテナに製品をロードします。

于 2010-10-23T15:09:09.323 に答える
1

サーバー側のPHPで確かにそれを行うことができます。PHPには、XML解析用の組み込みライブラリがあり、これはあなたの場合に適しています。a、b、c をランダム化するのは簡単ですが、常に真の答えを得るには、他のアルゴリズムを使用して数値を生成する必要があります。あなたは数学の先生なので、そのようなアルゴリズムを見つけるのは誰よりも上手だと思います。

作業をさまざまな部分に分割する必要があると思います。

  • MySQL から質問を取得します (これは簡単です)
  • MathML を解析します (これを行うためのライブラリを見つけることができるでしょうか?)
  • 乱数の生成

特に一般的なシステムが必要な場合は、最後のものが最も困難です。コンピューターは、どのような種類の回答を探しているかをどのように認識しますか? 複素数が必要な場合もあれば、正弦波が必要な場合もあるため、さまざまな種類の質問に特定のアルゴリズムが必要になる場合があります。各質問は、お客様に代わって異なるアプローチで解決する必要がある場合があります。

多項式などを解くための (多かれ少なかれ) 一般的なアルゴリズムがあります。あなたはおそらく、あなたの職業ですでにいくつかのアプローチを知っているでしょう. たぶん、そのようなアルゴリズムを使用できますか?ハードワークのほとんどは、コーディングではなく、実際にはこのプロジェクトに関係する数学であることがわかると思います。

一般的なシステムが不可能な場合があることを覚悟しておいてください。

于 2010-10-23T14:58:00.750 に答える
1

さて、javascript と乱数を使用して係数を変えることができます。これを行う方法についての良いレッスンについては、次の Web サイドをご覧ください。

JavaScript: ランダム スクリプト

于 2010-10-23T14:55:17.720 に答える
1

Google Mathematical (TeX) Formulasを試してみます。とてもきれいになります。

サーバー側はjavascriptが理解できればできますが、phpはそれほど難しくありません。

データベースは、プレゼンテーション固有のものをデータベースに保存しないでください。値a、b、cを作成してdbに保存するジェネレーターを作成します。

于 2010-10-23T14:56:01.340 に答える
1

このようなものが役立つかもしれません:

<html>

<?php

//if the button has been pressed
if(isset($_POST['click'])){
    //generate a random number from 1 - 5 and store it in $random
$random = rand(1,5);
    //query the database for the equation with the id of $random
$result = $mysql_query("select equation from questions where id=$random");
$row = mysql_fetch_row($result);
    //print the equation
echo $row[0];
}

?>

<form method="post" action="">
<input type="submit" name="click" value="go"/>
</form>  
</html>
于 2010-10-23T14:57:48.193 に答える
0

現在 MAA によって管理されている宿題管理システムであるWeBWorKを検討することをお勧めします。これは、オンラインの宿題システムとして数学者によって数学者のために設計されており、非常に人気があります。もちろん、それはあなたが求めているよりもはるかに多くの製品でもあります.

于 2010-10-24T20:41:20.257 に答える