我使用整数和分数mod 10的乘法来解决这个加密问题.
这是等式:
7 * (4/11) mod 10 =?
Run Code Online (Sandbox Code Playgroud)
我知道我应该将它转换为整数,因为mod运算符不适用于分数,但我无法想象这个.明显,
7 * (4/11) = 28/11,
Run Code Online (Sandbox Code Playgroud)
但我不能得到一个分数的mod 10.教练想要确切的答案,而不是小数.任何帮助将不胜感激!
看看这里:math.stackexchange.com上的“是否可以对分数取模” 。
\n\n\n定义模块化函数的一种自然方法是
\na (mod b) = a \xe2\x88\x92 b \xe2\x8c\x8aa / b\xe2\x8c\x8b
\n其中 \xe2\x8c\x8a\xe2\x8b\x85\xe2\x8c\x8b 表示下取整函数。这是格雷厄姆、高德纳、帕塔什尼克所著的颇具影响力的著作《具体数学》中使用的方法。
\n这将为您提供 1/2(mod3)=1/2。
\n
要解决您的问题,您需要a = 7 * (4/11) = 28/11和b = 10。
a / b= (28/11)/10 = 0.25454545...
\xe2\x8c\x8aa/b\xe2\x8c\x8b= 0
b \xe2\x8c\x8aa/b\xe2\x8c\x8b= 0 * 0 = 0
a - b \xe2\x8c\x8aa/b\xe2\x8c\x8b= 28/11 - 0 = 28/11
这意味着你的答案是 28/11。
\nWolfram Alpha同意我的观点并给出了28/11确切的结果。谷歌也同意,但给出的是小数,2.54545454......
分数是精确答案,而不是小数。
\n小智 5
8确实是正确的答案。
7*4/11 mod 10表示我们正在查看7*4*x mod 10x是11模10的模逆,即11*x mod 10 = 1。x=1(11*1 mod 10 = 1)就是这样
所以7*4*x mod 10变成7*4*1 mod 10哪个28 mod 10 = 8