铁血丹心

 找回密码
 我要成为铁血侠客
搜索
查看: 1856|回复: 10

[提问] 鬼谷算

[复制链接]
发表于 2014-7-30 05:19 | 显示全部楼层 |阅读模式

马上注册,结交更多侠友!

您需要 登录 才可以下载或查看,没有账号?我要成为铁血侠客

x
又称韩信点兵

相传秦朝末年,楚汉相争。一次,韩信将1500名将士与楚王大将李锋交战。苦战一场,楚军不敌,败退回营,汉军也死伤四五百人,于是韩信整顿兵马也返回大本营。当行至一山坡,忽有后军来报,说有楚军骑兵追来。只见远方尘土飞扬,杀声震天。汉军本来已十分疲惫,这时队伍大哗。韩信兵马到坡顶,见来敌不足五百骑,便急速点兵迎敌。他命令士兵3人一排,结果多出2名;接着命令士兵5人一排,结果多出3名;他又命令士兵7人一排,结果又多出2名。韩信马上向将士们宣布:我军有1073名勇士,敌人不足五百,我们居高临下,以众击寡,一定能打败敌人。汉军本来就信服自己的统帅,这一来更相信韩信是“神仙下凡”、“神机妙算”。于是士气大振。一时间旌旗摇动,鼓声喧天,汉军步步进逼,楚军乱作一团。交战不久,楚军大败而逃

[url=http://baike.baidu.com/subview/2653/5174834.htm#reference-[168]-5174834-wrap]韩信_百度百科[/url]
http://www.jxteacher.com/yjjjlhl ... 6-b76fb5330260.html

本着好学精神我去研读了一下

所说的是

除3的余数乘70
除5的余数乘21
除7的余数乘15

然后加起来,减去或加上一定的105的倍数,可得士兵人数,或者鸡蛋数量

那么我想问前提是不是需要知道答案的范围,给的范围则必须是<100
比如1000-1100,或者21000-21100,不能是2000-2200(毕竟最后是105的倍数嘛)

————————————————————————————————————————————————————————————
后来又找到一个资料,其实不只是到7的余数,而是更多

韩信点兵又称为中国剩余定理,相传汉高祖刘邦问大将军韩信统御兵士多少,韩信答说,每3人一列余1人、5人一列余2人、7人一列余4人、13人一列余6人……。刘邦茫然而不知其数。以上内容转自小精灵网([url]http://new.060s.com)[/url]


  我们先考虑下列的问题:假设兵不满一万,每5人一列、9人一列、13人一列、17人一列都剩3人,则兵有多少?

  首先我们先求5、9、13、17之最小公倍数9945(注:因为5、9、13、17为两两互质的整数,故其最小公倍数为这些数的积),然後再加3,得9948(人)。以上内容转自小精灵网([url]http://new.060s.com)[/url]


http://new.060s.com/article/2010/02/27/185116.htm

___________________________________________________________________________________________________________________


上述题目去我发现是纯忽悠啊

如果答案是9948,那么除3根本是整除了,哪来的余数1

根本没解答了

而且也有一个前提就是兵不过万...


【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2014-7-30 05:24 | 显示全部楼层
然后找到这题,没有答案范围,那么答案就很广了

 请你根据这一算法计算下面的题目。

  新华小学订了若干张《中国少年报》,如果三张三张地数,

  余数为1张;五张五张地数,余数为2张;七张七张地数,

  余数为2张。新华小学订了多少张《中国少年报》呢?

1x70 = 70, 2x21 = 42, 2x15=30, 总数142
正常应该是减105,得37,除了之后余数正确

但是答案既然没有一定的范围,那么就不限定一定是37了哦
142+105也可以是答案啊,247
142+2(105)也可以是答案啊,352
142+n(105)都可以是答案啊...

所以我的理解是需要知道一个答案的范围,而这个范围不超过100
是不是正确的呢?
还是鬼谷算还有什么要诀是我还没有领悟的?

求赐教
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2014-7-30 07:03 | 显示全部楼层
查了好多资料终于弄明白数论倒数了
虽然倍数方面我是用一个一个猜的,不过想来不用太费心在这个上面了

关键是哪个70,21和15是怎么来的,弄好了这个其他的用常理可以理解了
而这70,21和15就是数论倒数来的

首先 5 mod 3 = 2,意思就是5除3,余数是2

那么题目就是

x mod 3 = 2
x mod 5 = 3
x mod 7 = 2

接着就要找哪个70,21和15了
原理就是另外几个被除数乘起来

x mod 3 = 2;5x7 = 35
x mod 5 = 3;3x7 = 21
x mod 7 = 2;3x5 = 15

得出了35,21和15
多亏了这个35我才去深入研究,否则就做学问不够认真了

得出这几个数字之后还要找他们的倍数当中,哪个可以做到 mod 3 = 1 (同理mod 5 = 1; mod 7 = 1)
35/3,余数是2,所以不能用35
35的第一个倍数是70,70/3刚好得到余数是1,所以可以用70
21/5余数刚好是1,所以21可用
15/7余数刚好也是1,所以15直接可用

最后就是拿原本的余数(2,3,2)乘新得到的数论倒数(70,21,15)
然后加起来
就是140,63和30,总数233

现在又回到我主体的问题了
看来应该是真的要有一个答案的范围才能解决

假设答案设定在于2100-2200(其实不一定是100,要看被除数的总乘,这里刚好是3x5x7=105,只要范围在105内就行了,否则会有多过一个答案)
那么就要用2200-233 = 1967,1967/105=18.73(为了得到适合的倍数,别管小数点)
所以适合的答案是 233 + 18(105) = 2123

检查答案
2123/3 = 707.67
707x3 = 2121,所以余数2是正确的

2123/5 = 424.6
424x5 = 2120,所以余数3是正确的

2123/7 = 303.29
303x7 = 2121,所以余数2是正确的
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2014-7-30 14:16 | 显示全部楼层
这个是一个非常古老的数学问题,最早出自孙子算经。也叫韩信点兵,秦王暗点兵等。选择的数字应是两两互质的。
所选择的乘数,要求是其他数的公倍数,以及对自身的余数为1。结果是一个不定式。按照原始的3,5,7来说,结果加上105均符合要求。105是3个数的最小公倍数,并非是总乘积。
如果用于点兵,应该找更大的互质数。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2014-7-31 01:02 | 显示全部楼层
weyl 发表于 2014-7-30 14:16
这个是一个非常古老的数学问题,最早出自孙子算经。也叫韩信点兵,秦王暗点兵等。选择的数字应是两两互质的 ...

是啊,105是用于加减最终的答案的吧,可以是n(105)
n可以是+也可以是-

你说点兵的话要用更大的互质数是指3,5,7吧?
多少人一排的意思

随便出一题,不过这个互质数应该要是prime number吧?
不知道中文叫什么,就是这个数字是不能被其他数字整除的...

首先随便来个答案,9872

x mod 12 = 8 (330)
x mod 15 = 2
x mod 22 = 16

这样好像不能算到数论倒数啊...
300/12 余6, 660又能整除12...
_______________________________
继续9872

用大一点的prime number作为互质数...
17,19,23

x mod 17 = 12 (437) 4370 mod 17 = 1
x mod 19 = 11 (391) 2737 mod 19 = 1
x mod 23 = 5 (323) 323 mod 23 = 1

12x4370 + 11x2737 + 5x323 = 52440 + 30107 + 1615
=84162

84162 - n(17x19x23) = 84162 - n(7429)

如果知道答案是少过10000里最大的数字

那么就要减去74162,所以用74162/7429 = 9.98
这里就要用ceiling number拿10

84162 - 10(7429) = 9872...

好像是对了...

问题1:必须知道答案的范围,否则最多能得到最小的答案,最大的答案是无限
问题2:互质数必须是prime number?
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2014-7-31 02:04 | 显示全部楼层
两两互质即可,不一定都是质数
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2014-7-31 04:47 | 显示全部楼层
weyl 发表于 2014-7-31 02:04
两两互质即可,不一定都是质数

那基本上是单数的天下阿...

依然9872

9,10,11

x mod 9 = 8 (110) 550 mod 9 = 1
x mod 10 = 2 (99) 891 mod 10 = 1
x mod 11 = 5 (90) 540 mod 11 = 1

8x550 + 2x891 + 5x540 = 4400 + 1782 + 2700
= 8882

8882 - n(9x10x11) = 8882 - n(990)
已知答案不过万,所以n是-,10000-8882 = 1118
1118/990 = 1.13,取1
8882 - (-)(990) = 8882 + 990
= 9872

9和10都非质数

但是那个最小公倍数,由于要去两两互质数,所以最后还是会变成3个,或者更多的总乘...
应该是吧?
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2014-7-31 12:25 | 显示全部楼层
发现知识分子两只
大师球准备
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2014-7-31 14:50 | 显示全部楼层
两两互质情况下公倍数就是乘积。但是中国剩余定理中具体的要求我也不是很清楚,可以查看点资料。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2014-8-1 09:43 | 显示全部楼层
weyl 发表于 2014-7-31 14:50
两两互质情况下公倍数就是乘积。但是中国剩余定理中具体的要求我也不是很清楚,可以查看点资料。

谢了巨巨~
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2014-8-1 09:47 | 显示全部楼层
liwei4009 发表于 2014-7-31 12:25
发现知识分子两只
大师球准备

一起研究吧~~~~~~~~~
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

小黑屋|手机版|铁血丹心

GMT+8, 2024-12-22 19:47

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表