中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-24 21:24
47,813 主题排行 / 349,918 发帖 / 今日 1 篇 / 48,274 会员排行
DOS批处理 & 脚本技术(批处理室) » [求助]如何求出文本中哪些数相加等于指定的值
可打印版本  4,432 / 48
第31楼 slore 发表于 2007-03-03 22:05
铂金会员 发帖 2,478 积分 5,212
随便给一个?那只能是把第39个换成4764...那样就唯一解。。

这个根据情况吧。否则计算量太大了。你看我说的那个累加次数!2的几十次方啊。

方法我觉得最省的就是:
1.排序
2.判断至少和至多的数字个数。
3.枚举这2个里面的数字。。。。
(这个枚举的过程我找下,懒的再想了,但是数字越多,运算就……)
第32楼 qjbm 发表于 2007-03-04 00:21
初级用户 发帖 44 积分 125
又见排列组合!

没有简单算法.

n=数组中数的个数
r=从 1 到 数组中数的个数总和
在nCr中枚举是否有符合条件.....


这种程序写完了也不适合在32位系统上运行...

--------------------------------------
若仅以解决本题可采用qzwqzw兄的递归代码稍加修改.
但计算速度还是要看运气........

运气不错!
在进行103次计算时得到第一种结果:


还是那句话,此题不宜在32位系统环境下解决.
下面的附件是在22万次计算后得到的321种结果!!!!!!

[ Last edited by qjbm on 2007-3-3 at 02:29 PM ]

附件
结果.txt (60.98 KiB)
第33楼 youxi01 发表于 2007-03-04 01:21
高级用户 发帖 247 积分 846 来自 湖南==》广东
TO 26F:
如果考虑重复数字的话,
最大的数字组合只要35个,而非38个!
最小的数字组合需要38个
所以,真正的数字个数有35,36,37,38等情况。
如果按照常规办法的话,根据排列组合规律,数字将会极其庞大!我已经宣布退出,期待高手。
第34楼 slore 发表于 2007-03-04 01:31
铂金会员 发帖 2,478 积分 5,212
Originally posted by youxi01 at 2007-3-3 12:21:
TO 26F:
如果考虑重复数字的话,
最大的数字组合只要35个,而非38个!
最小的数字组合需要38个
所以,真正的数字个数有35,36,37,38等情况。
如 ...



哦,知道意思了。。。。。。。。。。

[ Last edited by slore on 2007-3-3 at 12:47 PM ]
第35楼 youxi01 发表于 2007-03-04 03:12
高级用户 发帖 247 积分 846 来自 湖南==》广东
不是吧,效率这么低,那等我老了,都可能还没全部运算完
第36楼 20080610 发表于 2007-03-04 03:41
初级用户 发帖 34 积分 83
理想状况下从这些结果里筛选.
72!/35!(72-35)!+72!/36!(72-36)!+72!/37!(72-37)!+72!/38!(72-38)!
第37楼 qjbm 发表于 2007-03-04 03:48
初级用户 发帖 44 积分 125
72!/35!(72-35)!+72!/36!(72-36)!+72!/37!(72-37)!+72!/38!(72-38)!

n=数组中数的个数
r=从 3538
在nCr中枚举是否有符合条件.....

一样的.海量计算模式!!
第38楼 20080610 发表于 2007-03-04 03:50
初级用户 发帖 34 积分 83
批处理应该是完成不料的...
第39楼 slore 发表于 2007-03-04 05:26
铂金会员 发帖 2,478 积分 5,212
放弃了……
枚举的代码写出来了……运算的太慢了。
没响应……关闭了。。数太多了。。
第40楼 Primalchaos 发表于 2007-03-04 05:28
初级用户 发帖 19 积分 41
楼上何不将代码公布,让我们学习一下?
第41楼 slore 发表于 2007-03-04 05:41
铂金会员 发帖 2,478 积分 5,212
不是用p写……
P运算的话更慢……

就是递归之类……网上搜索下 组合 递归。。算法很多的,dephi的,c的,vb的……
第42楼 Primalchaos 发表于 2007-03-04 06:19
初级用户 发帖 19 积分 41
那么兄可以给出c语言的代码吗?
第43楼 slore 发表于 2007-03-04 06:35
铂金会员 发帖 2,478 积分 5,212
第44楼 youxi01 发表于 2007-03-04 07:34
高级用户 发帖 247 积分 846 来自 湖南==》广东
不知道为什么,我写的一段代码,测出的36个数字组合要比32F的组数多的多?!
代码比32F的效率要高,但还是很不够,正在测试,稍候发布。
第45楼 youxi01 发表于 2007-03-04 07:48
高级用户 发帖 247 积分 846 来自 湖南==》广东
代码如下,欢迎测试,指正。

说明:本段代码给出的是针对36个数字组合时的情况,其它情况不在考虑范围内,有需要请自行更改。

[ Last edited by youxi01 on 2007-3-4 at 07:50 AM ]
上一页  1 2 3 4  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023