分享免费的编程资源和教程

网站首页 > 技术教程 正文

一个猜数字的游戏原理(猜数字游戏怎么能稳赢?)

goqiw 2025-05-02 10:20:04 技术教程 1 ℃ 0 评论

表演者请观众随意写一相当大的数。 任意颠倒各位数字所得的数与原数相减,然后任意删去差中的一个非零数字, 再把结果告诉表演者。 表演者把此数输入计算机,计算机就能推算出删去的数字是什么并加以显示。

例如,观众写的数:13208754

颠倒顺序后: 80473251

相减后的差: 48385710=80473251-32087541

观众删去数字7,结果为:4838510。表演者将此数输入计算机。 计算机立即显示出数字7给观众看!

这当然要先埋伏一道程序在计算机内, 下面给出具体算法。

这个原理非常简单,那就是将一个数字比如365做运算:

(300-3)+(60-6)+(5-5)=3(100-1)+6(10-1)+5(1-1),

其结果肯定能被9整除。

再比如x=321,则n=3,y=6,得到321-6=315=0(mod9)。

引理2指出x-x′≡0(mod 9), 即观众写的数与颠倒其顺序后的数相减,所得的差能被9除尽。比如,x=752,则x'=257,得到 x-x' = 495 = 0(mod9)。又比如:523(原数);325(颠倒顺序后的数);198(差)。 (198)≡0(mod 9)。

若删掉了其中的8,则19≡(1+9)≡1(mod 9)。 因为没删之前本应该能被9整除,删了一个数字之后模9之后余1,所以其中的差值9减1,也就是8即是被删的数字。

求解上题的算法

1 输入m (也就是颠倒顺序后的差);

2 对k=0至8, 做

mk(mod 9)

则打印: ″删去的数是9-k;″

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表