python - 如何使用循环(任何)将方程的输出放在同一个方程中并为python中的特定值集获取新值?
问题描述
我想使用方程式{Xn=2.6*X*(1-X)}
将 X 的初始值设为 0.4 并获得第一个 Xn 并将其用作 X 在同一个方程式中,这样获得前 50 个值。
这是我尝试过的:
x=float(input("enter the initial guess:"))
xn=2.6*x*(1-x)
print(xn)
for x in xn:
print(xn)
和
count=0
print(2.6*x*(1-x))
while x>=0.4:
count+=x
print(count)
解决方案
除非您假设 Python 可以进行 prolog 样式的符号评估,否则这一切都没有意义,而它不能。
Python 不是一门复杂的语言:你有表达式,它们被评估并绑定到变量。看起来您想要在这里迭代您的方程式:将其应用于初始值,然后将其重新应用于自己的结果。
AFAIK Python既没有iterate
也没有unfold
作为其标准库的一部分,但是您可以轻松地为特定的迭代实例创建生成器:
def the_thing(x=0.4):
while True:
# swap if you don't want the initial value to be returned
yield x
x = 2.6 * x * (1-x)
然后,您可以迭代其中的一部分:
for x in itertools.islice(the_thing(), 50):
print(x)
推荐阅读
- makefile - -emit-llvm 链接时不能使用
- java - 为什么在执行 poll() 时优先队列重新排序元素?
- python - 使用定义函数将华氏度转换为摄氏度的程序
- r - 在 R 中运行此 for/if 代码时出现“缺失值”错误
- javascript - 解构函数参数的 TS 语法
- javascript - 如何为表单提交按钮创建一个“onClick”事件,该按钮将数据发布到 Netlify 并重定向到 Stripe Checkout?
- lldb - 在 lldb 中调试 glib/gtree
- google-bigquery - Firebase Analytics 数据到 Redshift - BigQuery RECORD 数据类型到 Redshift
- extjs - 如何在没有 Sencha Cmd 的情况下使用 ExtJS7?
- javascript - 可以将属性添加到 Javascript 类中的方法吗?