python 简单地实现平均分组问题

本文介绍了如何使用Python实现公平的分组算法,通过随机数确保分组的公正性。首先,将人员列表随机分配到两个组,然后讨论了一种更灵活的列表嵌套方法,适用于分组数量变化的情况。在极端情况下,如连续1000次未达到平均分配,程序可能会停止运行。
摘要由CSDN通过智能技术生成

举个栗子。

现在从我们班选了6个人,分成两组,需要emmm,比如说去打僵尸
1组分配狙击枪,2组分配步枪。

那么这时候就出现问题了:显然手持步枪冲锋作战死的更快,所以大家都想去1组。

那么这时候就需要进行公平的分组:抓阄

为了跟本文内容有关系所以 大家暂定为用一个python程序来实现分组。nice√

那么,思路如下:

首先统计6个人的姓名(或者编号),把它们都放在列表lovelive里面。

可是μ‘s不是9个人吗

然后用1个空列表l0和原来的列表lovelive分别存放1组和2组人员的姓名(或编号)。

用随机数取下标的值以保证100%公平√

每次取1个值x,放入空列表l0中。

每次取完值之后就把这个x从lovelive中删掉避免重复。

取到3个值就停。

这样l0就能取到3个人,而列表lovelive就剩下另外3个人。

这样一来,思路就基本确定了。

import random

str1 = 'kinlrmi.soulrn.christine.christian.saph.laflosia'
ll = str1.split
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值