|
qjbm
初级用户
积分 125
发帖 44
注册 2007-1-24
状态 离线
|
『楼 主』:
[讨论][共同参与]求表格中数的规律[挑战分割法算法极限]
表格如下:
1 1 组合为 1
1 2 组合为 1
1 3 组合为 1
.........
2 2 组合为 2
2 3 组合为 3
2 4 4
..........
3 3 6
3 4 10
3 5 15
...........
9 9 12870
请问:
13 15 组合为 多少?
--------------------------------------------
下面的代码不是用来描述表格规律的,但是可以用做验证结果.
计算速度太慢,这正是为什么要求表格规律的原因.
@ECHO %DBG% OFF
SETLOCAL ENABLEDELAYEDEXPANSION
:SETUP
SET /P ONE=输入第一个数: & IF NOT DEFINED ONE EXIT /B
SET /P TWO=输入第二个数: & IF NOT DEFINED TWO EXIT /B
SET /A ZS=1,ZHE=%ONE%+%TWO%-1
SET /A ZD=%ZHE%-(%ONE%-1)*%ZS%,f=0,g=%ONE%-1,j=%ONE%-2
FOR /L %%i IN (1,1,%ONE%) DO (SET /A R%%i=!ZS!) & SET /A R%ONE%=!ZD!
:MAIN
CALL :PRI & IF %R1%==%ZD% (ECHO %ONE% %TWO% 组合值为: !f! & GOTO :EOF)
IF !R%ONE%!==%ZS% (
CALL :GUI & CALL :JIN & CALL :ADD
SET /A R%ONE%=%ZHE%-!h!,j=%ONE%-2
GOTO :MAIN
)
SET /A R%ONE%-=1,R%g%+=1
GOTO :MAIN
:PRI
SET /A f+=1
CLS & ECHO 第 !f! 次计算
GOTO :EOF
:GUI
FOR /L %%i IN (%j%,1,%g%) DO (IF %%i GTR %j% SET /A R%%i=%ZS%)
GOTO :EOF
:JIN
SET /A R%j%+=1
CALL :ADD
SET /A h=%h%+(%ZS%-1)
IF %h%==%ZHE% (SET /A j-=1 & CALL :GUI & CALL :JIN)
GOTO :EOF
:ADD
SET /A h=0
FOR /L %%i IN (1,1,%g%) DO (SET /A h+=!R%%i!)
GOTO :EOF 引发问题相关帖:
http://www.cn-dos.net/forum/viewthread.php?tid=26911&fpage=4
本贴若代码化图表规律计算式,
则可在进行 所有可行性条件列举 前得所有可行性条件总和.
[ Last edited by qjbm on 2007-2-5 at 12:28 AM ]
附件
1: fgf.jpg (2007-2-5 11:39, 65.88 K, 下载附件所需积分 1 点
,下载次数: 5)
附件
2: plzh.bmp (2007-2-5 13:28, 67.85 K, 下载附件所需积分 1 点
,下载次数: 7)
|
|
2007-2-5 10:18 |
|
|
scriptor
银牌会员
积分 1187
发帖 555
注册 2006-12-21
状态 离线
|
『第
2 楼』:
你这个居然是杨辉三角
那么规律就很明显了
哈哈哈
|
|
2007-2-5 12:52 |
|
|
qjbm
初级用户
积分 125
发帖 44
注册 2007-1-24
状态 离线
|
『第
3 楼』:
正是杨辉三角
正是杨辉三角
正在考虑批处理是否可以实现nCr函数功能.
节省资源,在楼上回了,
nCr和nPr计算是排列组合(分割法)相关,与帕斯卡三角形有直接关系.
有的同学会很纳闷的问,排列组合(分割法)与帕斯卡三角形有什么关系?
总范围 - 平均底限*组数 与 方法数 的关系 正是帕斯卡三角形
也就是说,在求分割法时,我可以屏弃以前的nCr和nPr计算,而利用帕斯卡三角形
直接得出结果.
相关资料:
http://www.dsej.gov.mo/~webdsej/www_gtrc/course/Senior/SMath2.htm
第6章
[ Last edited by qjbm on 2007-2-6 at 08:08 PM ]
|
|
2007-2-5 13:05 |
|
|
scriptor
银牌会员
积分 1187
发帖 555
注册 2006-12-21
状态 离线
|
『第
4 楼』:
实现nCr函数功能?
这个和那个有关??
请问你想要什么??
|
|
2007-2-5 14:41 |
|
|
namejm
荣誉版主
batch fan
积分 5226
发帖 1737
注册 2006-3-10 来自 成都
状态 离线
|
|
2007-2-5 15:20 |
|
|
redtek
金牌会员
积分 2902
发帖 1147
注册 2006-9-21
状态 离线
|
『第
6 楼』:
太精彩了~~
而且昨天发的帖子居然论坛上显示有:17122人浏览过此帖,1天就有1万7千多人浏览,破纪录了~:)
|
Redtek,一个永远在网上流浪的人……
_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._ |
|
2007-2-5 22:57 |
|
|
vkill
金牌会员
积分 4103
发帖 1744
注册 2006-1-20 来自 甘肃.临泽
状态 离线
|
|
2007-2-5 23:10 |
|
|
namejm
荣誉版主
batch fan
积分 5226
发帖 1737
注册 2006-3-10 来自 成都
状态 离线
|
『第
8 楼』:
Quote: | Originally posted by redtek at 2007-2-5 09:57:
而且昨天发的帖子居然论坛上显示有:17122人浏览过此帖,1天就有1万7千多人浏览,破纪录了~:) |
|
再看看精华帖里的“ 无奈何签名代码略析 ”,居然只有40次的浏览量,看来论坛的计数器是发生了一点错乱。
5楼的代码还有一个致命的缺陷:因为涉及到数值的运算,所以,不能处理两数之和超过2^31-1的情况。
|
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。 |
|
2007-2-5 23:14 |
|
|
namejm
荣誉版主
batch fan
积分 5226
发帖 1737
注册 2006-3-10 来自 成都
状态 离线
|
『第
9 楼』:
Quote: | Originally posted by vkill at 2007-2-5 10:10:
还没有看到规律 |
|
这是一个杨辉三角的正方形表格形式,杨辉三角的规律是:某个数字等于它两肩上的两个数字之和。具体到这个表格中,就是某个数字等于同一行前一列的数与前一行同一列的数之和。
|
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。 |
|
2007-2-5 23:18 |
|
|
无奈何
荣誉版主
积分 1338
发帖 356
注册 2005-7-15
状态 离线
|
『第
10 楼』:
Quote: | Originally posted by namejm at 2007-2-5 23:14:
再看看精华帖里的“ 无奈何签名代码略析 ”,居然只有40次的浏览量,看来论坛的计数器是发生了一点错乱。
|
|
这个帖子的点击会如此高,是不是有人刷点击,或者进行过帖子合并等版务管理?
willsort 兄发的那个帖子,是我操作失误造成的,将另一个帖子归并到此贴时顺序错了。重新分割后造成 ID 改变,点击数丢失。
[ Last edited by 无奈何 on 2007-2-6 at 02:06 AM ]
|
☆开始\运行 (WIN+R)☆
%ComSpec% /cset,=何奈无── 。何奈可无是原,事奈无做人奈无&for,/l,%i,in,(22,-1,0)do,@call,set/p= %,:~%i,1%<nul&ping/n 1 127.1>nul
|
|
2007-2-6 00:40 |
|
|
20080610
初级用户
积分 83
发帖 34
注册 2006-11-24
状态 离线
|
|
2007-2-6 02:44 |
|
|
electronixtar
铂金会员
积分 7493
发帖 2672
注册 2005-9-2
状态 离线
|
『第
12 楼』:
有的人不想混了......以为联盟没有人了说?
|
C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>" |
|
2007-2-7 00:42 |
|
|
qjbm
初级用户
积分 125
发帖 44
注册 2007-1-24
状态 离线
|
『第
13 楼』:
5楼 namejm的代码对排版的控制相当精彩.
call set /a num!lines!_%%i=%%num!SN1!_%%i%%+%%num!lines!_!SN2!%% 也正是描述杨辉三角的:除了斜边为1的数之外其他都是他肩上两个数字之和的规律.
但是我想要计算的规律或者应该说通项公式是:
在矩形列表形式描述下,仅利用纵横坐标求相交点值.
节省..在楼上回了.---
...............看样子是我的表达能力有点问题.
递加的不算.....
[ Last edited by qjbm on 2007-2-6 at 08:25 PM ]
|
|
2007-2-7 08:38 |
|
|
namejm
荣誉版主
batch fan
积分 5226
发帖 1737
注册 2006-3-10 来自 成都
状态 离线
|
『第
14 楼』:
Quote: | Originally posted by qjbm at 2007-2-6 19:38:
但是我想要计算的规律或者应该说通项公式是:
在矩形列表形式描述下,仅利用纵横坐标求相交点值. |
|
我说过,自行修改就可以达到目的,其实修改起来是很容易的事情,以下代码加入了简单的出错检测,请配合5楼的代码使用:
@echo off
setlocal enabledelayedexpansion
:begin
cls
set lines=0
set input=
set /p input= 请输入以空格分隔的行数和列数(比如3 6):
call :loop %input%
:loop
if %1 gtr %2 goto begin
if %2 gtr 17 goto begin
set /a lines+=1
for /l %%i in (1,1,%2) do (
if !lines! equ 1 (
set num!lines!_%%i=1
) else (
if %%i equ 1 (
set num!lines!_%%i=1
) else (
set /a SN1=!lines!-1
set /a SN2=%%i-1
call set /a num!lines!_%%i=%%num!SN1!_%%i%%+%%num!lines!_!SN2!%%
call set num=%%num!lines!_%%i%%
)
)
)
if %lines% lss %1 goto loop
cls
echo.&echo.&echo.
echo 在这个表格中,第 %1 行第 %2 列上的数字为 %num%
echo.
pause
goto begin
|
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。 |
|
2007-2-7 09:21 |
|
|
scriptor
银牌会员
积分 1187
发帖 555
注册 2006-12-21
状态 离线
|
『第
15 楼』:
被你先写了代码
那天我刚好回家了
又不能上网
今天我贴出来
看一看
评一评
呵呵....
|
|
2007-2-24 11:06 |
|