我想制作一个有助于几何级数的程序。只要用户提供第一项和第二项,我就可以找到总和,项,项值。我想编写一些代码来解决非线性联立方程,并自行找到第一项的值a和公共比率r。
我在编码中使用了公式ar ^ n-1 = [term value]
例如,如果我输入的第三项是45,第五项是405,我希望程序输出a为5,r为3。
from scipy.optimize import fsolve
any_num1 = int(input("Enter the term "))
any_num1_value = int(input("Enter its value: "))
any_num2 = int(input("Enter the term "))
any_num2_value = int(input("Enter its value: "))
def equations(p):
a, r = p
return (a*r**any_num1-1-any_num1_value, a*r**any_num2-1-any_num2_value)
a, r = fsolve(equations, (1, 1))
print(equations((a, r)))
答案 0 :(得分:0)
好吧,解决方案全是关于数学的。
any_num1 = int(input("Enter the term "))
any_num1_value = int(input("Enter its value: "))
any_num2 = int(input("Enter the term "))
any_num2_value = int(input("Enter its value: "))
term_difference = any_num1 - any_num2 if any_num1 > any_num2 else any_num2 - any_num1
b,c = (any_num1_value, any_num2_value) if any_num1_value > any_num2_value else
(any_num2_value, any_num1_value)
r = int((b / c) ** (1/term_difference))
a = int(any_num1_value / (r ** (any_num1 - 1)))
print("First term:" + str(a))
print("Ratio:" + str(r))