gpt4 book ai didi

java - 如何随机生成一个函数,该函数是 <10000 的整数的排列

转载 作者:行者123 更新时间:2023-12-01 07:01:59 24 4
gpt4 key购买 nike

我希望允许用户使用相同的用户名,但有一些额外的 ID,格式为 #XXXX,其中 X 是一个数字(例如,BestUserName#3421),类似于 Battle.net 上的做法。

任何两个用户都不应具有相同的用户名和 #id 组合。

此外,我不希望我的用户能够轻松预测其他用户的额外 id。因此,我不能只从 BestUserName#0000 开始,然后是 BestUserName#0001、BestUserName#0002,...)。

因此,我想为每个用户名生成一个从 0000 到 9999 之间的所有数字到 0000 到 9999 之间的每个数字的双射 f(n)。f 必须让人很难猜测 f(n-1) 是什么当你知道 f(n) 时。此外,所有用户名的 f(n) 不得相同。

那么第一个用户将是 BestUserName#f(0000),第二个用户将是 BestUserName#f(0001),依此类推,我的用户将无法猜测彼此的 #id。

如何在 Java 中执行此操作?

最佳答案

在构造函数中,创建一个用值 0000-9999 初始化的 ArrayList,对其进行随机播放,并将计数器初始化为 -1 (或 10000)。每次添加用户时,递增(或递减)计数器并使用它来索引 ArrayList 的下一个元素。或者,如果您要添加额外的 id 作为用户的属性,您可以放弃计数器,只删除并分配 ArrayList 的最后一个(或第一个)元素。

如果分配应该是永久性的,则您必须存储先前的分配、打乱的 ArrayList 和计数器值,以便您可以从上次中断的地方继续。

关于java - 如何随机生成一个函数,该函数是 <10000 的整数的排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43189962/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com