我正在開發一段代碼來從輸入字符串生成唯一的十六進制值。輸出的大小必須小於11個字節,這是需要的。可以給我一個洞察力。我已經完成了二進制轉換的字符串,然後是產生字母數字字符組合的六角形映射,但大小始終大於11個字節。我還需要從這種獨特的id..Is是可能的再生輸入.....在adavance如果一個字符串的大小小於11個字節的唯一ID生成
1
A
回答
1
如果您的結果一定是絕對獨特的
感謝和您的輸入可以是任何長度,然後你的任務是不可能的。
想一想:11個字節有多少種不同的組合? 256 (或2 11 * 8 = 2 )。
這是一個很大的數字,對吧?是的,但它不夠大。
爲了簡單起見,我們只討論ASCII字符串,所以我們有128個不同的值(實際上Java中的字符有更多的可能性,但是原理保持不變,爲簡單起見,我們也是忽略String
中的\0
字符是不太可能的)。
現在,有128個不同的13個字符的ASCII字符串,其中有128 。這是2 7 * 13或2 不同的組合。很明顯,你不能有一個唯一的ID爲2 可能的ID爲2 不同的字符串。
0
少於11個字節表示最多10個字節。
8^10是1073741824.
2^80是一個龐大的數字。
所以,如果你把你的hexvalue,並以它爲模數,你應該適合10個字節。將餘數轉換回十六進制。
重新生成輸入將不可能。如果您的輸入允許超過11個字節,則不可能。這將是一個無盡的壓縮。
相關問題
- 1. 從字符串生成唯一的ID
- 2. 基於一對字符串生成一個唯一的字符串
- 3. 如何生成20個字符的字母數字唯一ID
- 4. 如何生成長度小於8個字符的唯一數字
- 5. 從字符串生成一個大小爲12的哈希值
- 6. 生成從2個關鍵字一個唯一的字符串
- 7. 如何生成唯一的字符串
- 8. 如何從字符串集合中生成一個唯一的字符串?
- 9. 從唯一字符串輸入生成唯一ID
- 10. cytoscape.js:設置節點標籤的字體大小小於一個
- 11. 的Servlet /生成唯一的字符串
- 12. 用小寫字母和數字生成唯一的隨機字符串
- 13. 字符串生成器當前字節大小
- 14. 基於一組有序的字符串生成直觀的唯一字符串?
- 15. 生成一個唯一的字母數字ID
- 16. 如何將一個大的lua字符串分解成小字符
- 17. 生成一個字符串
- 18. 如果您索引短一個字符的字段名稱,Lucene會生成較小的文件大小嗎?
- 19. PHP:生成唯一的字符串
- 20. 如何生成唯一字符串?
- 21. 定義一個小於一個字節的枚舉/爲什麼這個結構大於一個字節?
- 22. 轉換11字節的十六進制字符串字節大小16
- 23. 使用_mm_loadu_si128會發生什麼,如果該參數指向一個字符串小於16個字節(
- 24. 使用php爲給定字符串生成一個唯一的ID
- 25. 如何將一個字符串轉換爲一個字符數組中的字符大小的字符數組?
- 26. 將字符串拆分成一些大小的字符數組
- 27. LREM一個「大」字符串或SET/GET + LREM一個「小」字符串
- 28. 字符串的最後一個字母的大小寫
- 29. 爲不同的字符串生成唯一的ID?
- 30. 如何從長度爲28的兩個唯一字符串中生成長度爲28的唯一字符串?
如果未指定輸入字符串的長度/內容,則顯然不存在可能的1對1到十六進制(<11字節)的映射,因爲字符串的域可能更大。 – Winfred 2011-03-16 07:33:10
@Winfred:這正是我想在下面說的。我用了更多的話;-) – 2011-03-16 07:33:43
@Joachim紹爾:我剛剛添加它作爲評論:P。很高興你把它擺好。 – Winfred 2011-03-16 07:51:05