【发布时间】:2020-12-24 10:22:25
【问题描述】:
根据下面的代码部分,我正在尝试实现一个自动和随机的变异过程。
data = [0,1,0,0,0,0,0,1,0,0,1,1,0,0,1]
data[random.randint(0,len(data)-1)]=random.randrange(0,1)
print(data)
该代码是对我发现的其他一些帖子的改编,尽管它每次都会以 0 或 1 随机改变一个值。我要求这种情况仅以一定的概率发生(例如 0.05 的变异机会) 而不是总是得到保证。
此外,通常将 0 替换为 0,因此输出不会发生变化,因此我想限制它,使 0 只会变异为 1,而 1 会变异为 0 .
非常感谢您在解决这两个问题方面的帮助。
【问题讨论】:
-
请用您尝试过的代码更新您的问题。
-
omg... 你不仅在应该使用
randrange的地方使用了randint,而且在你应该使用randint的地方也设法使用了randrange。你总是写一个零。 -
"另外,通常 0 被替换为 0,因此输出没有变化,所以我想限制它的方式是 0 只会变异为 1 并且1 突变为 0。”大约一半的时间,是吗?也许你可以想出一个规则来告诉你设置值的概率是多少,这说明了设置值实际上并没有翻转它的可能性?
-
无论如何,您是否尝试过looking at the documentation for the
randommodule 来尝试找到您想要的东西?或者,也许您可以想办法将例如“0 到 1 之间的随机数”翻译成“某事发生的 X 概率”? (提示:概率可能具有的最大可能值是多少?概率可能具有的最小可能值是多少? -
@superbrain 感谢您引起我的注意。一般来说,我对编码很陌生,即使在文档的帮助下,我的理解也很基础,所以我想在尝试调整其他代码时,我把它们混在一起了。将对其进行更多研究并牢记在心。干杯!
标签: python random probability genetic-algorithm dplyr