当前位置: 代码迷 >> C语言 >> 一个浙江大学acm题目
  详细解决方案

一个浙江大学acm题目

热度:344   发布时间:2007-05-15 17:57:04.0
求模运算有逆运算吗?
----------------解决方案--------------------------------------------------------
举举例子看!!!好不好
----------------解决方案--------------------------------------------------------
是啊,我也这样认为
----------------解决方案--------------------------------------------------------
我做不出啊!!!!!
----------------解决方案--------------------------------------------------------
Array 0 1 2
plaintext 'c' 'a' 't' 原文数组
plaincode 3 1 20 原文代码数组
ciphercode 3 19 27 密文数组
ciphertext 'c' 's' '.' 密文代码数组
就举这个例子看a是怎样得到他的密文代码的

ciphercode[i] = (plaincode[k*i mod n] - i) mod 28
首先a的代码是 a在cat是第2个所以 i==2, 题目设k==5,cat一共有3个字母 所以n==3
  得到plaincode[2*5 mod 3 ] -> plaincode[ 10 mod 3] -> plaincode[1] == 1
所以 ciphercode[2] = ( 1 - 2 )mod 28 -> ciphercode[2] = 27.
----------------解决方案--------------------------------------------------------

最吸引人的地方就是 
该程序我们从密文得到原文.

如果mod没办法取逆运算 那真是有点麻烦啊!

大家一起想想有什么简单点的办法没?? 我想的都是笨办法.


----------------解决方案--------------------------------------------------------
问题是逆推啊!!
----------------解决方案--------------------------------------------------------
用0――27  循环  一个一个的试可以不!!
----------------解决方案--------------------------------------------------------

可以啊 就是笨了点 呵呵 死命想 想点简单的来


----------------解决方案--------------------------------------------------------
没有了 想不出了
----------------解决方案--------------------------------------------------------
  相关解决方案