Jea*_*dre 0 java random permutation
我希望允许用户使用相同的用户名,但在#XXXX形式中有一些额外的ID,其中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做到这一点?
在构造函数中,ArrayList使用值创建一个初始化0000- 9999,将其洗牌,并将计数器初始化为-1(或10000).每次添加用户时,递增(或递减)计数器并使用它来索引下一个元素ArrayList.或者,如果您要将额外ID添加为用户的属性,则可以放弃计数器,只需删除并指定最后一个(或第一个)元素ArrayList.
如果分配应该是永久性的,那么您必须存储先前的分配,随机分配ArrayList和计数器值,以便您可以在上次离开的地方继续.
| 归档时间: |
|
| 查看次数: |
160 次 |
| 最近记录: |