我真的是python的新手,除了在python中打印和解决基础知识外,我并不了解很多。我需要编写一个遵循以下规范的脚本:
用户输入
p1 =(x1,y1)
p2 =(x2,y2)
(d1,d2)
也是一个固定点Utilities为可能的结果创建一个线性区域,形式为
y = mx + cNB解决方案是(x * -d1)(y * -d2)的最大值
将y替换为mx + c并求解方程(x * -d1)(mx * + c-d2)函数值的最大值= mx * ^ 2 + cx * -d2x * -md1x * -cd1 + d1d2….equation(X)
⌈在y = mx +c⌉行中的x值内倾斜
从实用程序中获取点(x1,y1)(x2,y2)并确定分歧点(d1,d2)
找到直线的斜率=(y2-y2)/(x2-x1)
通过替换y = y1,x = x1并计算m,在方程y = mx + c中找到c的值。
替换m,x,d1,d2和c的值。
通过替换两点创建的行中所有可能的x值来求解所有方程,从而找到x *
返回该行中的最大值和相应的x值。例如,
如果(x1)= 10和(x2)= 20 程序应将上面列出的等式X范围内的所有可能值插入,然后返回函数的最大值及其相应的x坐标
我没有多少,因为我对整体编码还是很陌生的。我所拥有的一切就像x1,y1 x2,y2 d1和d2的用户输入一样。目前,我正在安装我在网上找到的scipy模块,以查看是否可以使用它,但是即使使用python中的任何语法,我也非常不满意。你能帮我吗?我会很感激。
这是我到目前为止所拥有的:
def slope():
result = ''
x = float(input("Player 1 Utility for green"))
y = float(input("Player 2 ulitity for red"))
a = float(input("Player 1 utility for red"))
b = float(input("Player 2 utility for green"))
m = (y-b)/(x-a)
yint = y - (m*x)
if yint < 0:
sign='-'
else:
sign='+'
result = str("y="),str(slope),str("x"),sign,str(yint)
return result
print(slope())
import pylab as plt
import numpy as py
import sumpy as sy
import scipy as sc
def slope():
result = ''
x = float(input("Player 1 Utility for green"))
y = float(input("Player 2 ulitity for red"))
a = float(input("Player 1 utility for red"))
b = float(input("Player 2 utility for green"))
m = (y-b)/(x-a)
yint = y - (m*x)
if yint < 0:
sign='-'
else:
sign='+'
result = str("y="),str(slope),str("x"),sign,str(yint)
return result
print(slope())
def bargaining_solution(x,m,c,d1,d2)
return max mx^2 + cx - d2x - md1x -cd1+ d1d2