如何 用一个数表示两个数?
发布网友
发布时间:2024-03-24 02:26
我来回答
共4个回答
热心网友
时间:2024-04-09 10:53
首先如果是正整数,我能解决!C=p(x)×p(y),p(x)表示第p个质数,由于质数无穷,显然p(x)对于所有正整数有定义。给定一个C,显然能够唯一分解成两个质数之积吧,所以唯一确定x以及y。这属于密码学吧,不过运算量很大,美国密码技术发达就是因为他们掌握的质数多吧。
如果是整数,也好办,你把它们排列,从第1号开始,依次是
0,1,-1,2,-2,3,-3,4,,。。。。
这样,-3,4对应的就是第七个和第八个质数相乘=17×19=323,反过来,看到323,就知道是17,19,就知道-3,4
热心网友
时间:2024-04-09 10:49
...好难 完全看不懂
热心网友
时间:2024-04-09 10:50
非常佩服2楼!
如果是正整数,我是这样考虑的,
对(X,Y)排序如下:
(1,1)
(2,1),(2,2)
(3,1),(3,2),(3,3)
...
这样(X,Y)对应的数应为C=1+2+...+(X-1)+Y=(X-1)*X/2+Y
如果是整数,稍微麻烦一些,因为(X,Y)有四种可能
即(X,Y),(X,-Y),(Y,-X),(X,-Y)
如
(0,0)
(1,0),(-1,0),(0,-1),(0,1),(1,1),(1,-1),(-1,1),(-1,-1)
(2,1),(2,-1),....
注意实际上有重复情况,如C=3或4时,对应的都是0和-1,这时令C取较小的数,在这里取3。
这样的话(X,Y)对应的数C=1+4*(X+1)*X/2+4*(Y-1)+a
a可以取1,2,3,4,这取决于X和Y的符号。
热心网友
时间:2024-04-09 10:47
在下有个想法,抛砖引玉
假设X>Y,如果X+Y为偶数,取它们的平均值Z,让Z平方,然后加上X,Y到Z的差,即C=Z^2+(Y-Z);反过来算就是对C开平方,然后取整就是Z,把Z平方与C做差就是(Y-Z)了,然后就得到X,Y.
如果X+Y是奇数就让Y-1再运算,同时C也-1,反过来就不用说了吧。
至于X,Y是负数还没想好。。。