python - 如何在python中生成随机二次函数
问题描述
我正在尝试在 python 中创建一个二阶随机二次函数,每次都返回相同的结果。类似于以下内容:
funk = lambda i : random.randint(0,10)*i**2 + random.randint(0,10)*i + random.randint(0,10)
这里的问题是调用 x(5) 两次不同的时间将有 2 个可能不同的结果。是否可以生成一个每次都具有相同结果的函数,或者我应该执行以下操作:
m2 = random.randint(0,9)
m1 = random.randint(0,9)
b = random.randint(0,9)
funk = lambda i : m2*i**2 + m1*i + b
并在每次运行时为全局 m2、m1 和 b 分配一个新的随机数?
解决方案
您只需将系数随机化一次,然后将它们保存在某处并重复用于同一函数的以下计算。
类实例非常适合:
class RandomQuadratic:
def __init__(self):
self.a = random.randint(0,10)
self.b = random.randint(0,10)
self.c = random.randint(0,10)
def __call__(self,x):
return self.a*x**2+self.b*x+self.c
f = RandomQuadratic()
f(5)
f(5)
推荐阅读
- .net-core - .NET Core 数据库首先只更新一个表
- kubernetes - Openshift 中的 Cron 作业不是有效的模板,而是带有 yml 的 *batch.CronJob
- java - 第一次成功后文件传输功能冻结
- javascript - 使用传递给 Rust 的 JavaScript 对象时是否会影响性能?
- azure - Azure 数据工厂:默认参数中的 StartDate
- java - 重新创建活动并保存值
- vb.net - Visual Studio 2017 VB.Net 陷阱鼠标右键单击多行文本框不起作用
- bash - 如何检查具有给定名称的文件是否存在于同一目录中?
- azure-service-fabric - 将分区移动到新节点时是否存在停机时间?
- c# - MvvmCross 无法为类型构造和初始化 ViewModel