一个用于解决某类数学问题的批处理
bat吧
全部回复
仅看楼主
level 11
Misarin 楼主
RT,问题写在代码里
2020年03月17日 10点03分 1
level 11
Misarin 楼主
@璐村惂鐢ㄦ埛_000076K馃惥 off
setlocal enabledelayedexpansion
set/a a1=n=m=1
set l=0
echo 把a个不同的元素分到b个不同的集合,不允许有空集,求分配方法的总数
set/p a=a=
set/p b=b=
if %b% leq 0 goto e1
if %a% lss %b% goto e1
if %b% geq 10 goto o
if %b% equ 1 goto e2
if %a% gtr 30 goto o
:l
set/a l+=1,m*=2
if %m% lss %b% goto l
set/a l*=a
if %l% gtr 30 goto o
:an
set/a n+=1
set t=1
for /l %%i in (1,1,%a%) do set/a t*=n
set r=0
set j=1
:r
set/a p=q=1,f=n-j+1
for /l %%i in (1,1,%j%) do set/a p*=%%i
for /l %%i in (%f%,1,%n%) do set/a q*=%%i
set/a r+=q/p*a%j%
set/a j+=1
if %j% lss %n% goto r
set/a a%n%=t-r
if %n% lss %b% goto an
echo !a%b%!
pause>nul
exit
:o
echo overflow
pause>nul
exit
:e2
echo 1
pause>nul
exit
:e1
echo Error
pause>nul
exit
2020年03月17日 10点03分 2
level 11
Misarin 楼主
P.S.:for是真的好用
2020年03月17日 10点03分 3
level 11
Misarin 楼主
欢迎各位吧友提供其它算法
2020年03月17日 10点03分 4
1