Python论坛  - 讨论区

标题:=?GB2312?Q?Re: Re: [python-chinese]=D7=E9=BA=CF=C9=FA=B3=C9=CB=E3=B7=A8=A3=A1?=

2004年08月13日 星期五 11:51

Xie Yanbo idkey at 163.com
Fri Aug 13 11:51:42 HKT 2004

On 2004-08-13 11:27:1092367626 +0800, 王君 wrote:
> Xie Yanbo,您好!
> 
> 	你说的N字母N组合的程序,我觉得你是不是弄错了,N字母N组合只有一种组合,你说的每次交换2个字母的位置,这个方法似乎是用来做排列的吧·!我这里说的是列举所有的组合情况。

哦,你是在说组合,才反应过来 ^_^

这样,你把 N 个字母组成一个 list,那么它的所有组合形式也就是这个
list 的 index 的 0-1 排列。具体操作上来看,你可以制作一个 len=N
的 list,先令所有项为 0,然后把其中任意 M 个项设为 1,然后在这个
index list 上作排列── swap 操作要有点小修改,只对调值不同的项,
同为 0 或 1 的则直接跳过──每次交换后把  index list 中是 1 的
对应输出字母 list 中的值。这个方法虽然不能做到 O(N),但应该可以
提高程序速度吧。



[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号