使用python

时间:2018-10-27 02:06:27

标签: python linear-algebra

我正在辅导7年级学生的基础程序设计和数学。学生需要为班级分配完成的问题之一是“创建一个程序来求解给定的单变量线性方程式”。该学生必须使用python,并且只能使用ifelsewhile语句。该程序可以包括用户定义的函数和列表,但不能导入任何库,例如regex,sympy,numpy等。

程序应该能够解决以下示例方程式:

  • 2 * x-5 = 8
  • 4 * x + 3 = 3 * x-10
  • 11 * x = 2-(1/5)* x
  • 4 *(x + 2)= 5 *(x + 9)

我尝试过:对于字符串中的每个字符,请注意数字,运算符,等于符号和变量。将变量及其系数复制到新字符串中,并将带有符号的常量复制到另一个字符串中。我的希望是最终从每个字符串中提取整数并求解x的方程式。但是我没有正确地捕获具有多个数字的数字。带有括号的方程式使我很困惑。无法使用正则表达式或sympy很痛苦!

我正在寻找针对此问题的pythonic解决方案(如果存在)。

对于我的7年级生来说,这是一个非常棘手的问题,因为我的研究生和本科生朋友还无法提出解决方案。如果没有编程解决方案,则有关如何进行的任何建议都将有所帮助。

谢谢。

1 个答案:

答案 0 :(得分:0)

尽管完全有可能建立一个有限的自动机来求解一个表达式,但这并不是一件容易的事。

我本人有很多与构建语义或语法解析器有关的任务,但是通常是在C语言中完成:https://codereview.stackexchange.com/questions/112620/simple-expression-calculator-in-c

尽管如此,如果您接受聪明/危险/不良做法的解决方案:

previous_checkpoint_path = 's3://location/of/my/previous/generated/checkpoints'

tf_estimator = TensorFlow('tf-train.py', role='SageMakerRole',
                          checkpoint_path=previous_checkpoint_path
                          training_steps=10000, evaluation_steps=100,
                          train_instance_count=1, train_instance_type='ml.p2.xlarge',
                          framework_version='1.10.0')
tf_estimator.fit('s3://bucket/path/to/training/data')

这个想法是将自由变量转换为虚数单元,然后让python解释器完成其余工作。