【发布时间】:2021-03-07 04:16:30
【问题描述】:
我们有一群人。他们每周被随机分配一个从0到10的数字,如果数字大于9,则成为领导者。如果他们超过1人,他们都成为领导者,如果没有,他们将自己投票给领导者.一个人连续担任领导者不得超过 2 次。
不管怎样,让我们只有 10 个人,并给出一些随机数,对于这个问题:
import random
people=[]
for i in range(10):
inputval = random.randint(0,10)
people.append(inputval)
print(people)
所以我们得到:
[5, 6 ,7, 4, 8, 3, 6, 7, 8, 9 ]
所以,这些是与人相对应的价值观。
人[0] = 5,人[1] = 6,依此类推...
领导者是人[9]
下周,我们有
people = [8, 4 ,3, 2, 6, 10, 7, 6, 1, 9 ]
所以领导者是人[5]和人[9]
下周我们有:
people = [9, 0 ,4 , 8, 7, 6, 2, 3 , 1, 9 ]
所以领导者应该是 people[0] 和 people[9] 但 people[9] 已经连续 2 次成为领导者,所以只有 people[0] 应该是领导者。你明白我的意思。 问题在于如何实现。
-
我可以通过列举指数 a 来命名哪些是领导者,但这是非常“业余”的方式,只打印每周的领导者。我无法记录每次实际上是领导者的分数,以及相应的索引。
-
我还可以创建一个名为领导者的新列表。我将遍历人员列表,如果元素的值为 9 及以上,它将在新列表后面附加 1(领导者)或 0(非领导者),并有类似
leaders1 = [0,0,0,0,0,0,0,0,0,1], @ 987654327@,每次只打印值为1的,并与之前的leader列表进行比较,可能会实现一个计数器(?)。
从长远来看,我发现它更加复杂,特别是如果我想运行这个方法数周,从而创建越来越多的列表进行比较。
什么是最好的解决方案?有什么方法可以过滤掉领导者,而不会丢失人员的索引,例如 [5]、[9] 等?也许解决方案根本不应该使用列表?
谢谢。
【问题讨论】:
-
写作业的创意越来越好,SO不是编程服务
-
如果您遇到非常具体的情况,请粘贴您的代码并指出问题。如果没有,有类似搜索、在编程子版块或论坛中提问之类的东西可以为您提供帮助。虽然我觉得你甚至还没有开始写作业。
-
这不是家庭作业。我是自学语言,并通过 Youtube 视频尝试示例和想法。如果您认为这是我正在寻找的,您可以在一年后提醒并回答我。另外,我并没有要求你在代码中给出答案,而是要求你知道什么是最好的。
标签: python python-3.x modeling representation