2012-04-13 216 views
0

應該如何生成10個獨特的數字,這些數字在一組10人生成的答案中不應該匹配?隨機數生成

+1

GUID呢? – cha0site 2012-04-13 14:55:47

+0

不允許使用任何字母或特殊字符,只能使用0-9和10個隨機數的總和最小。 – Santosh 2012-04-13 15:00:26

+3

GUID只是一個數字。您不需要用十六進制顯示分隔破折號。 – hammar 2012-04-13 15:03:38

回答

3

這一個有一個很好的解決方案。我假設你必須以隨機的方式給1-10個不同的人1-10(但是如果你有10個(或更多)不同的非連續的數字,這個原則也適用)。

1

您可以使用操作系統工具生成GUID(全局唯一標識符)。

一個GUID是一個32位十六進制,看起來像這樣:{21EC2020-3AEA-1069-A2DD-08002B30309D}(從GUID wikipedia article無恥地被盜)。這使得它成爲一個128位數字。現在,它擁有所有那些令人討厭的角色,但是沒有任何東西阻止你去除多餘的字符並從十六進制轉換爲純數字。

出於實際原因,您需要注意的是,在某些語言(如C99)中,128位數字有點難以使用。但是你仍然可以使用編譯器擴展(GCC有__uint128_t)或者用其他方式處理它。