所以我正在学习python,我发现了一些可以自学的东西,一个作业!
因此,我们有100座房屋,每座房屋中有一个居民,一天,僵尸来袭并袭击房屋,居民被感染。 第二天有两个僵尸,但是僵尸并不聪明,因此它们可以攻击已经被攻击的房屋。
在所有房屋都被感染之前,部落需要攻击多少次?
这是我走了多远,我遇到的问题是如何处理第二天:
import math
import time
import sys
from random import randint
timeMeasure = [int(time.time())]
houses = 100
infected_houses = []
goal = int(sys.argv[1])
def random_house(houses):
return randint(1, houses)
for zombie in range(houses):
zombie_house = random_house(houses)
if not zombie_house in infected_houses:
infected_houses.append(zombie_house)
zombie += 1
答案 0 :(得分:-1)
您可以用一种以上的方式思考 如果在第2天每个僵尸都攻击不同的房屋,那么到第7天就会完成
但是,如果僵尸同时攻击所有同一个房屋,则需要100来完成攻击,您可以想象最后一天有99名僵尸袭击一所房屋,列表中的第一个僵尸会感染居民
但是我看到您正在使用random_house(houses)
,在这种情况下,随机数可能不会每次都返回不同的数字,因此,僵尸可能会在黑夜中夜袭同一个房子,在这种情况下,它可能永远消失