[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理怎样取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任取三个数为一组的所有数组?
最少需要多少组,各组数字是什么?

能否讲解一下五位数和三位数怎么可能存在共集?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

C(3,9)=9!/(3!*(9-3)!)=84组
一路飘过的鸟~~~

TOP

我的是意思是
比如0~9,这十个数,任取三个数为一组,都在012346   012359   012489   013789   026789   045678   123457   156789   234568   345679这十组数字之中,比如123就在012346中,,
像这样的,求1~9九个数,取五个为一组,,最少需要多少组才能包含下1~9任取三个数为一组的所有数组?
最少需要多少组,各组数字是什么?

TOP

在线等结果

TOP

难道高人都过中秋去了吗?

TOP

节也过完了,还没人能解决吗?

TOP

1~9九个数字取五个进行组合,数字不重复, 126组
1~9九个数字取三个进行组合,数字不重复, 84组

我算的是 112组
假设取123 在五组合中有15组包含123    126-15+1=112
  1. @echo off&setlocal enabledelayedexpansion
  2. for /l %%i in (1 1 9) do set _%%i=%%i
  3. set /a N=9,R=5,S=N-R,i=1,j=1
  4. for /l %%i in (1,1,%S%) do set /a "i*=(N-%%i+1),j*=%%i"
  5. set /a i/=j
  6. for /l %%i in (1 1 %R%) do set /a A%%i=%%i,B%%i=%%i+S&set #=!#! %%i
  7. echo!#!
  8. for /l %%a in (2 1 !I!) do (
  9.     set "#="
  10.     for /l %%i in (1 1 !R!) do if not #!A%%i! == #!B%%i! set M=%%i
  11.     for %%i in (!M!) do set L=!A%%i!
  12.         for /l %%j in (1 1 %R%) do (
  13.             if %%j geq !M! set/a A%%j=L+1,L=A%%j
  14.             set #=!#! !A%%j!
  15.         )
  16.     for %%i in (!#!) do set Emp=!Emp! !_%%i!
  17.     echo!Emp!&set "Emp="
  18. )
  19. echo 总 !i! 组
  20. pause
复制代码

TOP

不会吧,你的意思是说要112组五数组合才能包含下所有的三数组合??不应该这么多吧,

TOP

回复 9# lxyu521
楼主所说的是“组合”?我想应该是“排列”吧?组合是不管数字排列顺序的……如果真是组合,那用两个5位数足矣:01234和56789。如果是排列的话,所有的3位数排列有9×8×7=504种,而一个五位数排列可以容纳3个这样的三位数排列,比如12345就可以分解出123、234和345,那么就应该有504/3=168个这样的五位数排列。
看得多说得多,远比不上写得多。

TOP

这个也太智能了...

TOP

回复 9# lxyu521
意思有领会错是可能  你把代码里 R=5 改为R=3 即3组合
我再排除看下

TOP

回复 10# weichenxiehou


    五个数的是组合,三个数的是排列,,,就是用最少的五个数的组合包含下所有三个数的排列

TOP

回复 12# terse


    嗯,我知道求组合的方法,,只是求两个组合一个包含另一个就不行了,不知道如何算了

TOP

明白了  估计要的是 旋转矩阵算法

TOP

返回列表