主题:如何分摊秘密(一)——从《鹿鼎记》中的四十二章经说起 -- 明日枯荷包
共:💬63 🌺987
如果只有10万种商品,但是希望尽量减少编码的字节,那么应该把这种商品编码转换成内部编码,从0到999999编号。如果不愿意做这个转换,那么下面的100000都要换成1000000000。
如果说允许撞码,只是希望撞码可能性小一点,那么这就是希望找一个好的哈希函数(也叫杂凑函数)。象你这样取平均值也是一种哈希函数,但是效果显然不好,因为那些比较大和比较小的编码没有比较中间那些编码容易被取到。我觉得取加起来再除以100000的余数来做编码(再拿抽取的数目拼接也可以),要比平均值好,因为它的“撞码率”均匀。而且这个方法也容易扩张,如果你还想缩短字节数,可以除以10000,如果觉得字节数长一些也没关系,那么就除以更大的数。
如果说不允许撞码,那么代码长度不可能小于log(100000^30/30!),也就是差不多150-log(30!),大约是117字节左右。
- 相关回复 上下关系8
🙂谢谢各位,并汇报一下我最后的解决办法 6 乐趣到此 字491 2010-09-12 08:13:05
🙂可以用120个字节 相信逻辑和常理 字216 2012-02-07 22:42:33
🙂ding 1 hnlhl 字152 2010-09-03 22:05:28
🙂这个要看你的需求了
🙂等楼主解答,圆桌会议 3 ziotean 字157 2010-08-18 03:51:10
🙂回答第二题 11 明日枯荷包 字508 2010-08-18 04:41:35
🙂我想这个宝 1 众生相 字173 2010-08-16 02:03:57
🙂说的是Zero knowledge吧 1 Holzkopf 字0 2010-08-13 12:22:19