我正在辅导7年级学生的基础程序设计和数学。学生需要为班级分配完成的问题之一是“创建一个程序来求解给定的单变量线性方程式”。该学生必须使用python,并且只能使用if
,else
和while
语句。该程序可以包括用户定义的函数和列表,但不能导入任何库,例如regex,sympy,numpy等。
程序应该能够解决以下示例方程式:
我尝试过:对于字符串中的每个字符,请注意数字,运算符,等于符号和变量。将变量及其系数复制到新字符串中,并将带有符号的常量复制到另一个字符串中。我的希望是最终从每个字符串中提取整数并求解x
的方程式。但是我没有正确地捕获具有多个数字的数字。带有括号的方程式使我很困惑。无法使用正则表达式或sympy很痛苦!
我正在寻找针对此问题的pythonic解决方案(如果存在)。
对于我的7年级生来说,这是一个非常棘手的问题,因为我的研究生和本科生朋友还无法提出解决方案。如果没有编程解决方案,则有关如何进行的任何建议都将有所帮助。
谢谢。
答案 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解释器完成其余工作。