gpt4 book ai didi

java - 如何创建一个随机的 16 位数字,具有特定的第一位数字?

转载 作者:搜寻专家 更新时间:2023-10-31 19:27:41 27 4
gpt4 key购买 nike

我想在 java 中创建一个随机生成的 16 位数字。但是有一个问题,我需要前两位数字是“52”。例如,5289-7894-2435-1967。 我正在考虑使用随机生成器并创建一个 14 位数字,然后添加一个整数 5200 0000 0000 0000。 我试着寻找类似的问题,但找不到有用的东西。我对数学方法不熟悉,也许它可以为我解决问题。

最佳答案

首先,您需要生成一个随机的 14 位数字,就像您所做的那样:

long first14 = (long) (Math.random() * 100000000000000L);

然后在开头添加52

long number = 5200000000000000L + first14;

另一种方法同样有效,并且可以节省内存,因为 Math.random() 创建了一个内部 Random 对象:

//Declare this before you need to use it
java.util.Random rng = new java.util.Random(); //Provide a seed if you want the same ones every time
...
//Then, when you need a number:
long first14 = (rng.nextLong() % 100000000000000L) + 5200000000000000L;
//Or, to mimic the Math.random() option
long first14 = (rng.nextDouble() * 100000000000000L) + 5200000000000000L;

请注意,与 Math.random() 不同,nextLong() % n 不会提供完全随机的分布。但是,如果您只是生成测试数据并且它不必是加密安全的,它也可以工作。使用哪一个取决于您。

关于java - 如何创建一个随机的 16 位数字,具有特定的第一位数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27843947/

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