zoukankan      html  css  js  c++  java
  • 韩信点兵背后的思想

    感觉很有趣~

    文章来源:http://blog.csdn.net/novostary/article/details/24138063

    很早以前就知道了“韩信点兵,多多益善”这句俗语,但真正理解这句话的意思,却是在半年前上的一门课程(应用密码学)中。

    在这里首先介绍下搜集到的历史背景,之后是具体算法,最后是我的理解。

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

    中国有一本数学古书「孙子算经」也有类似的问题:「今有物,不知其数,三三数之,剩二,五五数之,剩三,七七数之,剩二,问物几何?」

    答曰:「二十三」

    术曰:「三三数之剩二,置一百四十,五五数之剩三,置六十三,七七数之剩二,置三十,并之,得二百三十三,以二百一十减之,即得。凡三三数之剩一,则置七十,五五数之剩一,则置二十一,七七数之剩一,则置十五,即得。」

    这个问题的推广及其解法,被称为孙子定理,也称为中国剩余定理,是中国古代求解一次同余式组的方法,是数论中的一个重要定理。中国剩余定理(ChineseRemainder Theorem)在近代抽象代数学中占有一席非常重要的地位,也可用于RSA算法中的快速计算

     

    秦九韶在《数书九章》中明确地系统地叙述了求解一次同余组的一般计算步骤。秦的方法正是前述的剩余定理。我们知道,剩余定理把一般的一次同余问题归结为满足条件的一组数Ki的选定。秦九韶给这些数起名叫“乘率”,并且在《数书九章》卷一“大衍总术”中详载了计算乘率的方法——“大衍求一术

     

    我国明朝有位大数学家叫程大位,他在解答“物不知其数”问题(即:今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?)用四句诗概括这类问题的解决:

    “三人同行七十稀,五树梅花廿一枝,七子团圆正半月,除百零五便得知。”

     

    http://baike.baidu.com/link?url=-q0wL0Tq-hee2HqwDrDHAPZKiwIY_eUxlais36mWYxaGAs-fo0-UZ-Q23c1d97bL 韩信点兵

    http://blog.sina.com.cn/s/blog_4a69a39601000ahx.html三人同行七十稀

    http://blog.csdn.net/tiaotiaoyly/article/details/1954466三人同行七十稀 - 中国剩余定理浅析

    -----------------

    算法:

    以求解“物不知其数”为例。



     

    最后想说一下通过听这位老师的课程所领会的思想。

    孙子定理的背后,蕴含了分类的思想。同余方程组,类似于把一个一维的数再次分为多维。
    分类,是人类知识原理,一切研究都离不开分类。(老师所说)

    人生的每个阶段都可以看做一个维度,而不同阶段的结合,则构成了现在的自己(思想、成就等)。而我们要做的,是让整个空间更大。

    好比用尺子去量一个东西,如果这个东西很长,用尺子的人会很痛苦,要么意识到自己的有限性,要么想办法去增长自己的尺子。而东西,可以认为是理想。而人生的每个阶段,可以认为是模数,模数的乘积,决定了自己当前的空间。而这需要前瞻性,在前瞻性不够的情况下,需要有一位人生导师存在来指引,但这又是可遇而不可求的,若是遇到,一定要珍惜。

    又好比看山,“横看成岭侧成峰,远近高低各不同”。若想对山有一个完整的认识,需要多维度的视角,横看、侧看、远看、近看、高看、低看。

    还产生了一种设想。以城市规划为例,一个规划师把规划的理念完全理解(深度,专业化),之后如果有公益的意识,很有可能成为类似于如何改变世界(一本书的名字)那样的人的(广度),他可以通过自己的知识来使人们的生活更好。若干年后,他若是可以意识到该放手去做别的事情时,他的贡献将会更大。这时,将会是更广阔的天地,这时需要的能力,如何识人,找到领域最强者,并且引导,或者说,这时可以是一个导师的角色了,去给只会做事并且可以把事做的很好的人加入思想或者理念上的东西,推动这样的人在自己领域做的事影响更多的人(改变世界)。

    还有一种思路是把自己培养成发现这样的人的人。类似于如何改变世界中的那个组织的领袖。

    在成长的过程中,思想和行动是相辅相成的,若是只有行动,可能得到的只是物质上的满足,人会很空虚;若是只有思想,又会不断地被现实所打击。最好的境界是既有发心,又能把事做好。

    还要认识到,人与人是不同的,上面的思考基于如何成为最优秀的人。不要期待每个人都是可以改变世界的那个人,改变世界的人也需要很多的人来支持的,能够有意识地把一个人引导到他的平衡点,已经足够了。

    看一个人,要看他的成长历程。在自己还能够掌控的成长阶段,有意识地去增大自己当前维度的长度,终有一天,自己也会变得很强大。

  • 相关阅读:
    DataGrid
    TreeGrid
    获取选中内容
    requirejs——config
    C# 字符串与字节数组相互转换
    并发编程
    关于 warning CS0659:“***”重写Object.Equals(object o)但不重写Object.GetHashCode()
    使用C#书写SQLite数据库增删改查语句(以及插入byte[]时遇到的问题总结)
    TortoiseSVN/Git覆盖图标失效的解决方案
    C#Question:“XXX”的重载均与“System.Threading.WaitCallback”不匹配。
  • 原文地址:https://www.cnblogs.com/pursuitofacm/p/7649300.html
Copyright © 2011-2022 走看看