我想为一个生物模拟器创建一个非常简单的进化算法,我想要的是,这两个生物都有一个特征和一个优势等级,两者都以int表示。他们的孩子的特质将是生物A的特质与生物B的特质之间的随机数,然后偏向更占优势。所以如果A的性状为5,支配度为2,B的特质为10,支配度为7,那么他们的孩子更有可能具有8比6的特征。有没有一种好的方法来做到这一点?蟒蛇随机歪斜
Q
蟒蛇随机歪斜
1
A
回答
0
你可能不想完全描述你所描述的,因为人口会收敛太快。那是因为你问的孩子总是之间的父母的价值观。所以极端值会很快消失。
更有可能,你想要的是一个具有固定数量噪音的数字,但是以你所描述的计算值为中心。这很容易做 - 中心只是一个加权平均值。
所以,例如,说性状是T1和T2,优势值是D1和D2。为孩子的特质中心值是TC:
TC = (D1 * T1 + D2 * T2)/(D1 + D2)
,那么你会增加一些噪音,同样正或负向,并最终转换为整数。
[顺便说一句,只是为了显示上述有意义的:可以看出,如果优势度相等,D1 = D2,然后再上面变得
TC = (T1 + T2)/2
这是平均值,因为您会期望。如果D1小于D2更大然后
TC ~ T1
这也是因为然后1支配2]
在python如预期:
from random import uniform
delta = 2 # the amount of noise
def child(t1, d1, t2, d2):
tc = float(d1 * t1 + d2 * t2)/float(d1 + d2)
tc += uniform(-delta, delta)
return int(0.5 + tc) # convert to int unbiased
,如果我运行几以您使用的数字为例:
>>> child(5, 2, 10, 7)
7
>>> child(5, 2, 10, 7)
11
>>> child(5, 2, 10, 7)
8
>>> child(5, 2, 10, 7)
9
看起来正确。请注意,值不是被强制介于父值之间 - 在一种情况下,它是11 - 但它的中心位于8附近,正如预期的那样。
最后,随着人口稳定(一种模拟退火),您可能会缓慢地减少delta
。
相关问题
- 1. 绘制随机界蟒蛇斜率
- 2. 如何随机对蟒蛇
- 3. 蟒蛇random.shuffle的随机性
- 4. 随机使用Varibles? (蟒蛇)
- 5. 2d随机游走蟒蛇 - 从分布图画斜边
- 6. 蟒蛇随机算术游戏
- 7. 蟒蛇随机,而多个条件
- 8. 使用随机模块蟒蛇
- 9. 蟒蛇随机鼠标移动
- 10. 随机字符串发生器蟒蛇
- 11. 随机文字游戏蟒蛇3.5
- 12. 斜杠和蟒蛇CMD
- 13. 蟒蛇代替反斜杠反斜杠
- 14. 生成蟒蛇随机整数失败使用随机库
- 15. 蟒蛇斜纹:跟随链接和抓取数据
- 16. 歪斜的图像
- 17. Flex歪斜对象
- 18. iPhone歪斜的CALayer
- 19. 试图让蟒蛇,随机混合列表mycolours,但要蟒蛇仅从列表
- 20. 随着蟒蛇的urllib2
- 21. 蟒蛇numpy机epsilon
- 22. 随机颜色添加到活动对象蟒蛇搅拌机
- 23. 如何配置蟒蛇斜纹/机械化库访问Facebook
- 24. 蟒蛇和Windows双反斜线
- 25. 滑块点 - CSS3歪斜斜他们
- 26. 蟒蛇在蟒蛇
- 27. 如何歪斜图像?
- 28. 歪斜的背景图像
- 29. 多边形歪斜算法
- 30. 星火歪斜数据