Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Math 我如何让我的计算机进行这种计算?我必须使用哪种编程语言?_Math - Fatal编程技术网

Math 我如何让我的计算机进行这种计算?我必须使用哪种编程语言?

Math 我如何让我的计算机进行这种计算?我必须使用哪种编程语言?,math,Math,我需要一个方程,它能找到一个不等式的所有解。例如:5x+4y+3z+3a+3b>40。这5个未知数,x,y,z,a,b必须取自4.0,3.5,3.0,2.0,1.5,1.0,0.5。例如,x=4,y=4,z=1,a=1,b=1是一种可能性,但还有更多的可能性。我怎样才能让我的电脑找到所有这些呢?主要的事情是找出如何循环所有的可能性。在大多数语言中,都会遇到五个for循环。Python允许您使用itertools.product来完成以下任务: #/usr/local/bin/python3 来自

我需要一个方程,它能找到一个不等式的所有解。例如:
5x+4y+3z+3a+3b>40
。这5个未知数,
x
y
z
a
b
必须取自
4.0
3.5
3.0
2.0
1.5
1.0
0.5
。例如,
x=4
y=4
z=1
a=1
b=1
是一种可能性,但还有更多的可能性。我怎样才能让我的电脑找到所有这些呢?

主要的事情是找出如何循环所有的可能性。在大多数语言中,都会遇到五个for循环。Python允许您使用
itertools.product
来完成以下任务:

#/usr/local/bin/python3
来自itertools进口产品
对于产品中的g(范围(9),重复=5):
如果5*g[0]+4*g[1]+3*g[2]+3*g[3]+3*g[4]>80:
打印([x/2代表x英寸g])

而不是0-4乘以0.5,我将所有值加倍,成为一个整数。不过,你可能想重新考虑一下
/gpa.py | wc
告诉我,您将获得超过20000个可能的解决方案。(如果您只需要找到解决方案的数量,而不列出它们,那么这可能会简化您的工作。)

如前所述,这是一个整数规划问题(线性规划的特例)。网络搜索应该会有很多点击率。这通常是一个很难解决的问题;我的建议是使用GLPK之类的包。整数规划非常有用,所以即使这个特殊问题的范围有限,也非常值得你花时间来研究如何解决它,因此,您可以将整数规划应用于可能遇到的其他问题。

听起来您正在尝试编写一个程序,该程序将告诉您获得总GPA>40所需的最少工作量。假设我想要2.00 GPA,那么我的成绩将是x y z a b,我的学分分别是5,4,3,3,3,那么等式如下(5x+4y+3z+3a+3b)/18)>2.00然后5x+4y+3z+3a+3b>36那么我如何找到x y z a b的每个可能性呢(当我把它写到python时,[0,1,3,4,4]是一个解决方案,但如果我像y=1和z=4a=4b=4那样思考,那么结果是错误的。它不是>80:(
[0,1,3,4,4]
值为
5*0+4*1+3*3+4+3*4=37的
不是一个解决方案(和
z=3
)。它将对应于
g=[0,2,6,8]
)。