标题: [文本处理] 批处理怎样取1~9中五个数组合和1~9中三个数组合的交集? [打印本页]
作者: lxyu521 时间: 2011-9-9 18:28 标题: 批处理怎样取1~9中五个数组合和1~9中三个数组合的交集?
本帖最后由 lxyu521 于 2011-9-14 10:45 编辑
求楼上的大侠们给个批处理,
1~9九个数字取五个进行组合,数字不重复,
1~9九个数字取三个进行组合,数字不重复,
求:最少要用多少组五个数的组合可包含下所有三个数字的组合?就是五个数字组合和三个数字组合的交集,,,
我的是意思是
比如0~9,这十个数,任取三个数为一组,都在012346 012359 012489 013789 026789 045678 123457 156789 234568 345679这十组数字之中,比如123就在012346中,,
像这样的,求1~9九个数,取五个为一组,,最少需要多少组才能包含下1~9任取三个数为一组的所有数组?
最少需要多少组,各组数字是什么?
作者: Batcher 时间: 2011-9-9 19:03
能否讲解一下五位数和三位数怎么可能存在共集?
作者: ArdentMan 时间: 2011-9-9 20:01
C(3,9)=9!/(3!*(9-3)!)=84组
作者: lxyu521 时间: 2011-9-9 21:55
我的是意思是
比如0~9,这十个数,任取三个数为一组,都在012346 012359 012489 013789 026789 045678 123457 156789 234568 345679这十组数字之中,比如123就在012346中,,
像这样的,求1~9九个数,取五个为一组,,最少需要多少组才能包含下1~9任取三个数为一组的所有数组?
最少需要多少组,各组数字是什么?
作者: lxyu521 时间: 2011-9-10 09:22
在线等结果
作者: lxyu521 时间: 2011-9-11 08:47
难道高人都过中秋去了吗?
作者: lxyu521 时间: 2011-9-13 16:33
节也过完了,还没人能解决吗?
作者: terse 时间: 2011-9-14 01:29
1~9九个数字取五个进行组合,数字不重复, 126组
1~9九个数字取三个进行组合,数字不重复, 84组
我算的是 112组
假设取123 在五组合中有15组包含123 126-15+1=112- @echo off&setlocal enabledelayedexpansion
- for /l %%i in (1 1 9) do set _%%i=%%i
- set /a N=9,R=5,S=N-R,i=1,j=1
- for /l %%i in (1,1,%S%) do set /a "i*=(N-%%i+1),j*=%%i"
- set /a i/=j
- for /l %%i in (1 1 %R%) do set /a A%%i=%%i,B%%i=%%i+S&set #=!#! %%i
- echo!#!
- for /l %%a in (2 1 !I!) do (
- set "#="
- for /l %%i in (1 1 !R!) do if not #!A%%i! == #!B%%i! set M=%%i
- for %%i in (!M!) do set L=!A%%i!
- for /l %%j in (1 1 %R%) do (
- if %%j geq !M! set/a A%%j=L+1,L=A%%j
- set #=!#! !A%%j!
- )
- for %%i in (!#!) do set Emp=!Emp! !_%%i!
- echo!Emp!&set "Emp="
- )
- echo 总 !i! 组
- pause
复制代码
作者: lxyu521 时间: 2011-9-14 10:39
不会吧,你的意思是说要112组五数组合才能包含下所有的三数组合??不应该这么多吧,
作者: weichenxiehou 时间: 2011-9-14 11:02
回复 9# lxyu521
楼主所说的是“组合”?我想应该是“排列”吧?组合是不管数字排列顺序的……如果真是组合,那用两个5位数足矣:01234和56789。如果是排列的话,所有的3位数排列有9×8×7=504种,而一个五位数排列可以容纳3个这样的三位数排列,比如12345就可以分解出123、234和345,那么就应该有504/3=168个这样的五位数排列。
作者: CrLf 时间: 2011-9-14 11:07
这个也太智能了...
作者: terse 时间: 2011-9-14 11:39
回复 9# lxyu521
意思有领会错是可能 你把代码里 R=5 改为R=3 即3组合
我再排除看下
作者: lxyu521 时间: 2011-9-14 13:54
回复 10# weichenxiehou
五个数的是组合,三个数的是排列,,,就是用最少的五个数的组合包含下所有三个数的排列
作者: lxyu521 时间: 2011-9-14 13:56
回复 12# terse
嗯,我知道求组合的方法,,只是求两个组合一个包含另一个就不行了,不知道如何算了
作者: terse 时间: 2011-9-14 15:15
明白了 估计要的是 旋转矩阵算法
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |