[英]How to generate unique pairs of numbers on python
所以我現在正在開發一個聊天應用程序。假設我們有 User1、User2、User3、...UserN。 我想為每對生成一個唯一的端口號。 就像 User1 和 User2 將有 5000,User1 和 User3 將有 5070,User2 和 User3 將有 5500 等等。基本上每個用戶應該有不同的端口號給其他用戶.. 但兩個用戶應該有相同的對於他們每個人。
因此,如果我理解正確,您正在尋找一種方法來 map 從User-i
和User-j
的每對i,j
到0
到65535
之間的數字(或您的范圍)。 順便說一句,這意味着您將擁有最多65535
對用戶,並且由於有N * (N-1) / 2
對,這意味着大約362
個用戶。
但是哪個組到 map 到哪個端口? 假設User-0
獲得端口1
到N
,下一個用戶N+1
到2N
等這樣你可以 map i,j
到f(i,j) = N*i + j
,這是一個 1-1 function,但是i,j
給出的結果與j,i
不同,這不是您想要的。 因此,我們首先需要將 map i,j
得到對j,i
給出相同結果但沒有其他輸入的東西。 一個想法是g(i,j) = (i,j) if i<j else (j,i)
。 換句話說,首先對數字進行排序。
現在User1, User2
映射到1,2 -> 1,2 -> 360*1 + 2 = 362
而且User2, User1
映射到2,1 -> 1,2 -> 360*1 + 2 = 362
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.