Math 如何在网页中添加动态数学
我是一名数学老师,想在网站上插入一些动态数学。我想实现的是,有一个按钮,学生可以按下,随机改变一个问题,使它是相同类型的问题,但不同的数字。比如说, 将形式为ax^2+bx+c的二次表达式乘以因子,其中a=1,b和c是介于1和100之间的正整数,因此根将是实整数 如果我使用MathML对存储在数据库(例如MySQL)中的数学(例如,下面的标记)进行编码,我如何设置,以便计算机以我上面描述的方式自动随机地改变数学表达式?我对服务器端脚本了解不多。。。我可以用PHP实现这一点吗?或者这更像是客户端JavaScript的工作?我只是想找一些建议来指导我选择学习道路。 多谢各位Math 如何在网页中添加动态数学,math,mathml,database-driven,Math,Mathml,Database Driven,我是一名数学老师,想在网站上插入一些动态数学。我想实现的是,有一个按钮,学生可以按下,随机改变一个问题,使它是相同类型的问题,但不同的数字。比如说, 将形式为ax^2+bx+c的二次表达式乘以因子,其中a=1,b和c是介于1和100之间的正整数,因此根将是实整数 如果我使用MathML对存储在数据库(例如MySQL)中的数学(例如,下面的标记)进行编码,我如何设置,以便计算机以我上面描述的方式自动随机地改变数学表达式?我对服务器端脚本了解不多。。。我可以用PHP实现这一点吗?或者这更像是客户端J
<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>⁢</mo>
<mi>x</mi>
</mrow>
<mo>+</mo>
<mn>12</mn>
</mrow>
</math>
x
2.
+
7.
x
+
12
您可以使用javascript和随机数来改变系数。请查看以下web端,了解如何执行此操作的好课程:
我想试试这个。它会干净得多
如果您理解javascript,就可以在服务器端完成,php并不是那么难
数据库应该只存储表达式的值/类型(a、b、c),而不存储数据库中特定于表示的内容。我会制作一个生成器,创建值a、b、c并将它们存储在db中。类似的内容可能会有所帮助:
<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>
您当然可以在服务器端用PHP实现。PHP有用于XML解析的内置库,这在您的情况下应该很好。随机化a、b和c是很容易的,但要始终有一个真实的答案,你必须使用其他算法来生成数字。因为你是一名数学老师,我认为你在找到这样一个算法方面和任何人一样优秀 我认为你应该把工作分成不同的部分:
- 从MySQL获取问题(这很容易)
- 解析MathML(也许你可以找到一个库来做这个?)
- 生成随机数
准备好通用系统可能不可行。一种方法是在数据库中存储通用公式,即您给出的示例
ax^2+bx+c
。名为公式的数据库示例:
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
然后(伪代码):
应用程序从数据库(任何类型或特定类型)检索随机公式\u问题
应用程序将随机生成的数字分配给常数,即“b=1,m=2,y=0.5”
应用程序使用步骤2中的数字交换formula_解决方案中的常量(在{}
中,很容易找到)
应用程序求解x并加密答案(对于二次型,有两个答案,Split({Split}”)
到数组中)
应用程序显示在网络浏览器上,并要求学生解答:“y=mx+b”和“b=1,m=2,y=0.5”
该应用程序还将加密答案放在网页上的隐藏表单字段中
学生求解x,然后在文本框中键入答案,然后单击提交按钮
应用程序将学生的解决方案与解密的隐藏解决方案进行比较
应用程序向web浏览器显示:“正确/不正确”以及正确答案
这个web应用程序可以用Java/C#.NET/VB.NET/PHP/任何web技术编写。数据库可以是SQL Server/MySQL/PostgreSQL/XML/等。所有处理都可以在服务器端用上述语言之一完成,或者,一旦从数据库检索到数据(公式),就可以在客户端JavaScript中完成处理
这个问题是非常开放的,因为开发人员可以采取许多方法,这归结为偏好。不过,我个人的看法是,与服务器端C#或PHP相比,用客户端JavaScript编程这些东西会更难
<>如果你已经知道任何计算机语言,即C++,那么选择一个看起来相似的脚本技术,通过阅读书籍和在线教程/代码例子开始学习。
(很抱歉,我不是一个数学爱好者)无论是在服务器端还是在客户端执行,都不重要。我通常更喜欢在客户端进行任何类型的处理,因为它对每个学生都应该是随机的,没有理由为此增加服务器的处理时间
如何读取MySQL数据库?您可以轻松地处理从服务器端脚本返回的数据。至于如何实现它,我建议使用一个非常容易使用的jQuery插件:
然后,流程是:Student Excersize page loaded并请求mathml xml对象,从mysql返回后,动态加载xml,将其转换为json对象,然后对对象的数据执行随机化。完成后,然后将产品加载到学生页面上的一个容器。 你可能想考虑,现在由MAA管理的作业管理系统。它是由数学家为数学家设计的在线家庭作业系统,非常流行。当然,它也比你要求的产品多得多。
我不知道找到整数根到底有多难