![]() |
中国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: 哦,知道意思了。。。。。。。。。。 [ 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=从 35 到 38 在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 |