以前便对鬼谷算感兴趣,不过对其原理不懂,后来在网上找到了原理。
在网上找到原理:用3除所得的余数乘上70,加上用5除所得余数乘以21,再加上用7除所得的余数乘上15,结减去105
图片来自网络
我随手一试,用了52去验算,成功了:单用991,结果却失败了。
于是便 试着去验证一下,有哪些数是不被鬼谷算包括的,代码如下:
for i in range (1001):
y=70*(i%3)+21*(i%5)+15*(i%7)
if (y>105):
y=y-105
if (y!=i):
print(i)
输出结果如下:
2 ,4 ,5 ,8 ,11 ,13 ,14 ,17 ,19 ,20 ,23 ,26 ,29 ,32 ,34 ,38 ,41 ,44 ,47 ,53 ,59 ,62 ,68 ,74 ,83 ,89 ,104 ,106 ,108 ,111 ,112 ,114 ,115 ,117 ,121 ,123 ,127 ,129 ,130 ,132 ,133 ,136 ,138 ,140 ,142 ,144 ,145 ,148 ,151 ,153 ,154 ,155 ,157 ,159 ,160 ,161 ,163 ,166 ,169 ,170 ,172 ,174 ,176 ,178 ,181 ,182 ,184 ,185 ,187 ,191 ,193 ,197 ,199 ,200 ,202 ,203 ,206 ,208 ,211 ,212 ,213 ,214 ,215 ,216 ,217 ,218 ,219 ,220 ,221 ,222 ,223 ,224 ,226 ,227 ,228 ,229 ,230 ,232 ,233 ,234 ,235 ,236 ,237 ,238 ,239 ,241 ,242 ,243 ,244 ,245 ,247 ,248 ,249 ,250 ,251 ,253 ,254 ,256 ,257 ,258 ,259 ,260 ,262 ,263 ,264 ,265 ,266 ,268 ,269 ,271 ,272 ,274 ,275 ,277 ,278 ,279 ,281 ,283 ,284 ,286 ,287 ,289 ,290 ,292 ,293 ,296 ,298 ,299 ,302 ,304 ,305 ,307 ,308 ,311 ,313 ,314 ,316 ,317 ,318 ,319 ,320 ,321 ,322 ,323 ,324 ,325 ,326 ,327 ,328 ,329 ,331 ,332 ,333 ,334 ,335 ,337 ,338 ,339 ,340 ,341 ,342 ,343 ,344 ,346 ,347 ,348 ,349 ,350 ,352 ,353 ,354 ,355 ,356 ,358 ,359 ,361 ,362 ,363 ,364 ,365 ,367 ,368 ,369 ,370 ,371 ,373 ,374 ,376 ,377 ,379 ,380 ,382 ,383 ,384 ,386 ,388 ,389 ,391 ,392 ,394 ,395 ,397 ,398 ,401 ,403 ,404 ,407 ,409 ,410 ,412 ,413 ,416 ,418 ,419 ,421 ,422 ,423 ,424 ,425 ,426 ,427 ,428 ,429 ,430 ,431 ,432 ,433 ,434 ,436 ,437 ,438 ,439 ,440 ,442 ,443 ,444 ,445 ,446 ,447 ,448 ,449 ,451 ,452 ,453 ,454 ,455 ,457 ,458 ,459 ,460 ,461 ,463 ,464 ,466 ,467 ,468 ,469 ,470 ,472 ,473 ,474 ,475 ,476 ,478 ,479 ,481 ,482 ,484 ,485 ,487 ,488 ,489 ,491 ,493 ,494 ,496 ,497 ,499 ,500 ,502 ,503 ,506 ,508 ,509 ,512 ,514 ,515 ,517 ,518 ,521 ,523 ,524 ,526 ,527 ,528 ,529 ,530 ,531 ,532 ,533 ,534 ,535 ,536 ,537 ,538 ,539 ,541 ,542 ,543 ,544 ,545 ,547 ,548 ,549 ,550 ,551 ,552 ,553 ,554 ,556 ,557 ,558 ,559 ,560 ,562 ,563 ,564 ,565 ,566 ,568 ,569 ,571 ,572 ,573 ,574 ,575 ,577 ,578 ,579 ,580 ,581 ,583 ,584 ,586 ,587 ,589 ,590 ,592 ,593 ,594 ,596 ,598 ,599 ,601 ,602 ,604 ,605 ,607 ,608 ,611 ,613 ,614 ,617 ,619 ,620 ,622 ,623 ,626 ,628 ,629 ,631 ,632 ,633 ,634 ,635 ,636 ,637 ,638 ,639 ,640 ,641 ,642 ,643 ,644 ,646 ,647 ,648 ,649 ,650 ,652 ,653 ,654 ,655 ,656 ,657 ,658 ,659 ,661 ,662 ,663 ,664 ,665 ,667 ,668 ,669 ,670 ,671 ,673 ,674 ,676 ,677 ,678 ,679 ,680 ,682 ,683 ,684 ,685 ,686 ,688 ,689 ,691 ,692 ,694 ,695 ,697 ,698 ,699 ,701 ,703 ,704 ,706 ,707 ,709 ,710 ,712 ,713 ,716 ,718 ,719 ,722 ,724 ,725 ,727 ,728 ,731 ,733 ,734 ,736 ,737 ,738 ,739 ,740 ,741 ,742 ,743 ,744 ,745 ,746 ,747 ,748 ,749 ,751 ,752 ,753 ,754 ,755 ,757 ,758 ,759 ,760 ,761 ,762 ,763 ,764 ,766 ,767 ,768 ,769 ,770 ,772 ,773 ,774 ,775 ,776 ,778 ,779 ,781 ,782 ,783 ,784 ,785 ,787 ,788 ,789 ,790 ,791 ,793 ,794 ,796 ,797 ,799 ,800 ,802 ,803 ,804 ,806 ,808 ,809 ,811 ,812 ,814 ,815 ,817 ,818 ,821 ,823 ,824 ,827 ,829 ,830 ,832 ,833 ,836 ,838 ,839 ,841 ,842 ,843 ,844 ,845 ,846 ,847 ,848 ,849 ,850 ,851 ,852 ,853 ,854 ,856 ,857 ,858 ,859 ,860 ,862 ,863 ,864 ,865 ,866 ,867 ,868 ,869 ,871 ,872 ,873 ,874 ,875 ,877 ,878 ,879 ,880 ,881 ,883 ,884 ,886 ,887 ,888 ,889 ,890 ,892 ,893 ,894 ,895 ,896 ,898 ,899 ,901 ,902 ,904 ,905 ,907 ,908 ,909 ,911 ,913 ,914 ,916 ,917 ,919 ,920 ,922 ,923 ,926 ,928 ,929 ,932 ,934 ,935 ,937 ,938 ,941 ,943 ,944 ,946 ,947 ,948 ,949 ,950 ,951 ,952 ,953 ,954 ,955 ,956 ,957 ,958 ,959 ,961 ,962 ,963 ,964 ,965 ,967 ,968 ,969 ,970 ,971 ,972 ,973 ,974 ,976 ,977 ,978 ,979 ,980 ,982 ,983 ,984 ,985 ,986 ,988 ,989 ,991 ,992 ,993 ,994 ,995 ,997 ,998 ,999 ,1000
所以鬼谷算没有什么实际用途,能算对也是个凑巧
for i in range (1001):
y=70*(i%3)+21*(i%5)+15*(i%7)
if (y>105): #可以去掉这步,看下什么数是例外
y=y-105
if (y==i):
print(i," ",end='')
输出结果:
1 3 6 7 9 10 12 16 18 22 24 25 27 28 31 33 35 37 39 40 43 46 48 49 50 52 54 55 56 58 61 64 65 67 69 71 73 76 77 79 80 82 86 88 92 94 95 97 98 101 103 107 109 110 113 116 118 119 122 124 125 128 131 134 137 139 143 146 149 152 158 164 167 173 179 188 194 209
可见韩信运气不错,可能买挂了。
如果你想自己试试,可以如此:
x,y,z=eval(input('该数除以3所得的数为:')),eval(input('该数除以5所得的数为:')),eval(input('该数除以7所得的数为:'))
print('得到:',70*x+21*y+15*z)
完
这篇博客探讨了鬼谷算的原理,通过Python代码验证了哪些数字不被鬼谷算涵盖,发现鬼谷算在某些情况下并不准确,但韩信点兵问题可能是个巧合。
&spm=1001.2101.3001.5002&articleId=97830342&d=1&t=3&u=61701e06f0c44eb88d582cd38bb12792)
1万+

被折叠的 条评论
为什么被折叠?



