我无法弄清楚如何重复此代码。该代码用于我正在研究的开始遗传算法函数。我是一个极端业余的代码,所以如果它是愚蠢的,抱歉。 :)
我认为我很接近,我有三种代码变体,但两者都不相同,但相对接近(......也许......)。
以下是我的代码的变体1 :
population_size = int(raw_input('Enter a population size:'))
def make_organism(length):
from random import randint
length = int(raw_input('Enter an organism length:'))
org = []
for i in range(length):
var = randint(0, 1)
org.append(var)
new_org = []
for length in range(population_size):
var_2 = randint(0, 1)
new_org.append(var_2)
print new_org
此代码返回正确的填充但不是正确的长度。
例如:
Enter a population size: 3
Enter an organism length: 4
[0]
[0, 0]
[0, 0, 0]
我的代码的变体2 :
population_size = int(raw_input('Enter a population size:'))
def make_organism(length):
from random import randint
length = int(raw_input('Enter an organism length:'))
org = []
for i in range(length):
var = randint(0, 1)
org.append(var)
new_org = []
for length in range(population_size):
var = randint(0, 1)
org.append(length)
print new_org
此代码返回正确的填充但不返回括号中的任何内容。打印new_org
与population_size
一样多次。
例如:
Enter a population size: 3
Enter an organism length: 4
[]
[]
[]
变体3:
population_size = int(raw_input('Enter a population size:'))
def make_organism(length):
from random import randint
length = int(raw_input('Enter an organism length:'))
org = []
for i in range(length):
var = randint(0, 1)
org.append(var)
print org
此代码将使用代码返回正确的长度,但不会返回正确的填充大小。
例如:
Enter a population size: 3
Enter an organism length: 4
[0, 1, 0, 1]
orgs
是表示为空列表的生物。代码根据位长度生成0和1的随机数模式,并且应该返回与用户输入种群大小一样多的随机列表。
答案 0 :(得分:0)
如果这是您期望的输出
import random as rd
pop_size=int(raw_input())
org_len=int(raw_input())
for i in range(pop_size):
org=[]
for j in range(org_len):
org.append(rd.randint(0,1))
print(org)
然后我想以下简单的代码应该可以工作,但它可能会给出重复的列表
{{1}}
希望这有助于:)
答案 1 :(得分:0)
你可能想要更多地阅读python,因为你似乎并不知道自己在做什么。但是,你想要做的很容易。我就是这样做的。
from random import randint
population_size = int(raw_input('Enter a population size:'))
length = int(raw_input('Enter an organism length:'))
org = [[randint(0,1) for _ in range(length)] for _ in range(population_size)]
print "\n".join(map(str, org))
逐行完成此行
from random import randint
从库随机导入函数randint。你把它放在一个你没有调用过的函数中,所以我不确定你的代码是如何工作的,但通常这是在文件的顶部完成的。
你知道接下来的两行是做什么的,因为我是从你那里复制过来的。
org = [[randint(0,1) for _ in range(length)] for _ in range(population_size)]
这是一个嵌套列表理解。内部部分生成一个列表,其中填充了所需长度的随机选择的0和1,然后外部部分为总体大小中的每个列表生成该列表。现在你有一些看似长度为4和人口大小为3的东西:
[[1, 0, 0, 1], [0, 0, 0, 0], [0, 1, 1, 1]]
最后一行只是将其格式化为在单独的行上打印每个生物体。