数学小魔术——猜数字

30 篇文章 0 订阅
14 篇文章 31 订阅

数学小魔术——神奇的二进制

请你任意猜想一个三位数,把这个三位数乘以 91 的乘积的最后三位告诉我,我们很快猜出你心中所想的那个三位数是多少?

我们以对方心中所想的 789 为例,则对方计算出 789×91=71799 ,并把结果的三位,也即 799 告诉我。看起来,这么做似乎损失了不少信息,让我没法反推出原来的数。不过,我仍然有办法:只需要把对方告诉我的结果再乘以 11,也即 799×11=8789 ,乘积的末三位即是对方刚开始所想的秘密数字。

道理其实很简单, 91×11=1001=(1000+1) ,任何三位数乘以1001,都会将该数复制一遍,比如, 123×1001=123×(1000+1)=123000+123=123123 ,末尾三位保持不变。

当然该问题也可描述为:

请你任意猜想一个三位数,把这个三位数乘以 11 的乘积的最后三位告诉我,我们很快猜出你心中所想的那个三位数是多少?

假设该数为 x ,上述问题即可用数学语言描述为,(x91%1000)11=[(x9111)%1000=x],这有一个基本结论,相乘之前对乘数取余不会对结果造成影响

我们举一反三,我们换种方式描述该问题:我需猜测你心中所想的数字,比如银行卡密码,比如某人的生日,你用我们约定的一个数 a (比如91),去乘那个数,传给我其末尾的几位,这叫什么操作?即为对该数字进行的加密。我用我约定的另外一个数(比如11)去乘以传递过来的数,即为解码的动作。

比如对银行卡密码(一般为6位,比如密码为327685)进行加密,传输以及最后的解码。你我处在计算机网络中的不同节点,你要告诉我你银行卡的密码,显然你不能直接传递明码,考虑到,5000001=141×35461,我们使用 141×327685%106=203585 ,作为加密后数字,我们使用 35461×203585%106=327685

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五道口纳什

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值