本帖最后由 lichuanboy44 于 2015-11-21 17:47 编辑
neicezhanghao 发表于 2015-11-20 17:19
完美解决者 RMB 奖励!
我在“
金樽空对月”老师的代码基础上,进一步完善了此程序。因为我较懂3D,故将程序界面重新进行了设计,且加上了“和值”这一直选和组选方法。
此程序排列编程相对容易一些,即将个十百三位数依次各取一个,如果个十百三位完全不相等时,则为"组六";有其中两个数相等时,则为"组三"(但三个都相等的除外);三个数都相等的则为"豹子"。
程序完善后,可以实现豹子、组三、组六任意单选或复合多选,打勾即为选取,无勾则为排除。具体如下:
1.直选:从豹子、组三、组六三个复选按钮中,单选或任意多选后,再按"直选"键,结果为指定数的所有排列;
2.组选:在上述排列(直选)的基础上,再按"转为组选",结果为所有组合;
3.和值:B3单元格输入和值,再按"和值直选"键,结果为指定和值的所有排列;
4.组选前提条件:必须先有直选,然后才能将直选数据转成组选。因组选数据来源于直选的结果。
6.如果全部不选,则视为全选处理。
要从众多排列中筛选出组合,我费了一点心思。主要思路是如下:
1.将直选的所有数据通过split空格转为数组;
2.将每个直选数据通过 mid生成一个临时数组,然后在数组中进行升序排序,这是关键的。
3.用字典进行重复值判断,如果排序后的值字典中存在,则忽略,否则,加入字典。
4.最后说是正确的结果了,将字典的keys值用Join连接起来。
达到了要求,给个最佳就、赏个金币就行,祝中奖!!