回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我的<code>createIndividual</code>函数试图获取一个名为<code>courses</code>的列表列表,然后随机向其中添加一个全局列表变量(<code>PEOPLE</code>)的成员。代码是:</p>
<pre><code>def createIndividual(courses):
# Courses is equal to an individual, but
# without people
individual = courses.copy()
for course in individual:
myPeople = PEOPLE.copy()
random.shuffle(myPeople)
for table in course:
while len(table) < table.maximum:
table.append(myPeople.pop())
return individual
</code></pre>
<p>我运行了很多次这个函数,试图得到很多不同结果的拷贝。然而,每次它都为每个个体内的<code>course</code>变量创建了完全相同的结果。你知道吗</p>
<p>程序运行期间的结果不同,但在一次运行期间是相同的。你知道吗</p>
<p><code>courses</code>参数的示例值为:</p>
<pre><code>[[[], [], []],
[[], [], []]]
</code></pre>
<p>最里面的“列表”实际上是<code>Table()</code>类,它们定义了一个<code>maximum</code>值,但在其他方面都像列表。每个<code>Table</code>的<code>maximum</code>属性是3。你知道吗</p>
<p><code>PEOPLE</code>的列表是:</p>
<pre><code>[1, 2, 3, 4, 5, 6, 7, 8, 9]
</code></pre>
<p>创建的第一个<code>individual</code>是:</p>
<pre><code>[[[4, 3, 8], [5, 9, 2], [1, 6, 7]],
[[4, 3, 8], [5, 9, 2], [1, 6, 7]]]
</code></pre>
<p>创建的第二个<code>individual</code>是:</p>
<pre><code>[[[9, 8, 3], [7, 2, 1], [6, 5, 4]],
[[9, 8, 3], [7, 2, 1], [6, 5, 4]]]
</code></pre>
<p>这些继续以明显的随机性进行,但是<code>individual</code>中的每个<code>course</code>始终与相同<code>individual</code>中的其他<code>course</code>相同,无论我如何更改参数。你知道吗</p>