python编程中的一个排列组合问题。

我在python编程中遇到排列组合一个问题。大概描述如下:现在有一百个工人,彼此不认识,编号依次为1-100,每天派10个人组成一批出去劳动,假设工人们一同劳动后就各自相... 我在python编程中遇到排列组合一个问题。大概描述如下:
现在有一百个工人,彼此不认识,编号依次为1-100,每天派10个人组成一批出去劳动,假设工人们一同劳动后就各自相互认识了,要求每天派出去劳动的工人都是两两互相不认识的(简而言之就是每个人都没有熟人),请问这样的可以坚持多少天?具体的组合是怎么样?

如果能用python编程解决更好了。大谢!
展开
 我来答
pythonhome
2012-10-26 · TA获得超过233个赞
知道小有建树答主
回答量:288
采纳率:0%
帮助的人:211万
展开全部
我感觉你这个跟python就没什么关系,因为就是具体的数学问题了

拿1个人来举例(其实结果所有人都一样)

编号1,可以与2-100个人进行组合。
但每次组合都会损失9个人,不管是随机的还是有顺序的,结果都是一样。
就是说,顶多都只能坚持11天。

你可以使用各种组合,组合都可以不一样,但按你这要求都是只能组合12次。
12次之后就会不符合你的要求了。
追问
首先肯定不止12种。例如:你把100个数按每行10个,共10行列出来,可以看成一个10x10的阵列。然后你会发现,每一行(共10行)满足要求,每一列(共10列)满足要求。于是这就有了20个组合。当然还有其他。所以肯定不止12中组合。
百度网友9308069
2012-10-26 · TA获得超过1万个赞
知道大有可为答主
回答量:3947
采纳率:89%
帮助的人:1877万
展开全部
99天,每1个人可以分别和其余99人配对。。
追问
能给个具体的代码吗?c也行啊。我最终还是要具体的组合方式。
追答
我的O(n^2)算法只能找到69组,选组的技巧没有掌握,所以找不到也验证不出那个110组。
花时间先把数理搞通是关键。。代码算抛砖引玉吧。你有更好的可以也告诉我

代码有“不适合发表的内容”不能贴出,地址
http://hi.baidu.com/imkow/item/7b271acf70e1b3c4984aa080
你看看吧
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小米飞猫
2012-10-27 · 专注于IT监控领域技术
小米飞猫
采纳数:1651 获赞数:4811

向TA提问 私信TA
展开全部
对算法外行的蹲坑学习。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-10-27
展开全部
100*99/(10*9)=100
更多追问追答
追问
恩,你的算法是对的,不过结果错了。100*99/(10*9) = 110。
问下你熟悉编程吗,能不能找到编段代码找出这些组合来。我最终还是想要知道这些组合。谢谢了。
追答
99/9我计算的竟然等于10,汗。
这个结果可以有很多种,但是不管怎么组合,最终结果只有110种,我懂一点python

我的算法很简单,100个人,两两握手(或者说见面)的次数是100*99/2
而10个人两两握手的次数是10*9/2,所以用100*99/(10*9)的数字就是最大的天数。
这个结果也许不对,但是绝不可能比这个天数更多。
这其中有个问题,比如100个人每次抽9个人出去干活,按照这个算法是不能整除的,100*99/(9*8)不能整除,最大的天数就是结果的整数部分。
上述结果是我猜的,未经验证。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式