繁体   English   中英

如何在 python 上生成唯一的数字对

[英]How to generate unique pairs of numbers on python

所以我现在正在开发一个聊天应用程序。假设我们有 User1、User2、User3、...UserN。 我想为每对生成一个唯一的端口号。 就像 User1 和 User2 将有 5000,User1 和 User3 将有 5070,User2 和 User3 将有 5500 等等。基本上每个用户应该有不同的端口号给其他用户.. 但两个用户应该有相同的对于他们每个人。

因此,如果我理解正确,您正在寻找一种方法来 map 从User-iUser-j的每对i,j065535之间的数字(或您的范围)。 顺便说一句,这意味着您将拥有最多65535对用户,并且由于有N * (N-1) / 2对,这意味着大约362个用户。

但是哪个组到 map 到哪个端口? 假设User-0获得端口1N ,下一个用户N+12N等这样你可以 map i,jf(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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM