这个问题与语言无关,所以我要求所有的智能程序员以某种方式帮助我。
给出一组带有| M |的元素“M” = 2 ^ 128个元素。每个元素“m”的位长为128位。
我想发送长度为128位的消息。在这条消息中,我想要包含M的一个元素和一些信息“n”。这意味着,“m”和“n”必须长度 另一方拥有包含所有元素的完整集“M”,但我需要告诉他/她她/她必须使用哪个元素。该指令必须适合一个指令,不能分成几条消息。 所以,我想用algotithm f()索引我的元素,所以f(m)= index_of_m,index_of_m <128位。 换句话说,算法必须在索引上映射长度为128位的2 ^ 128个元素,这些元素的位数少于元素的长度(128位)。 再次正式: 集合: 每 消息 索引/映射功能:f() 思路: -Hashes不会以简单的方式对元素进行散列,因为具有64位输出的散列可以对2 ^ 128个元素进行编码。具有128位输出的散列将耗尽整个消息,并且“n”将没有位置。 - 从1到2 ^ 128的索引将不起作用,例如,2 ^ 128将用完整个消息。M=(m1,m2,...mn) with n = 2^128
m1...mn: 128 bits.
"n" < 128 bit
。消息长度是可变的,可以是1位。f(m1)=i1 Index 1 of element m1 with the length of i1 < 128 bit., so i1+n=128bit
Wanted: Function f().
答案 0 :(得分:2)
没有
如果通过&#34;一套&#34;你的意思是一个集合,即没有重复的元素和顺序无关紧要,那么你的M就是0..2 128 -1范围内所有整数的集合。
对于所有元素,没有M的所有元素的表示小于128位。如果有,那么只是通过计数,没有足够的表示来映射到所有元素,这是一个矛盾。