首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >每次/每天随机数

每次/每天随机数
EN

Stack Overflow用户
提问于 2016-05-06 20:47:20
回答 2查看 562关注 0票数 1

我有一个12位数字,其中前8位是固定的,但后4位(数字)我想要不同,它给我的范围(0000-9999)。问题是这个脚本可能每天运行2-3次,也可能运行不同的日子。如果我使用随机函数,可能会发生一个今天生成的数字与明天生成的数字相同的情况。任何解决方案都可以每次/每天获得不同的4位数。

EN

回答 2

Stack Overflow用户

发布于 2016-05-06 20:55:20

你不能把一个时间压缩成一个4位数,这样就可以立即消除这种方法。

您需要做的是在某个地方存储一个计数。从0开始。您的脚本需要递增存储的数字,执行其任务,然后存储递增的值。如果该值达到10000,则表示您已达到方案的容量限制。

如果您需要该方案在用户看来是随机的,那么将该连续方案映射到一组打乱的数字,仅仅是为了构造12位数字。

票数 1
EN

Stack Overflow用户

发布于 2016-05-06 21:17:07

我知道这可能不是您想要的,但这是我创建的一个方法,它从时间和几个数组中生成一个随机数,如果可以,可以操作和使用它:)

代码语言:javascript
复制
import java.text.*;
import java.util.*;

public class Randomizer {
public void randomizer() throws InterruptedException {
    Randomizer r = new Randomizer();
    int[] numbers = { 3, 7, 2, 62, 1, 53, 16, 563, 12, 13, 75 };
    Calendar rightNow = Calendar.getInstance();
    int hour = rightNow.get(Calendar.HOUR_OF_DAY);
    int minute = rightNow.get(Calendar.MINUTE);
    int seconds = rightNow.get(Calendar.SECOND);
    int[] numbers2 = { 10, 32, 61, 2, 5 };
    int[] date = { hour, minute, seconds };
    int RandomNumber = (r.getRandom(date) * r.getRandom(numbers)) + r.getRandom(numbers2);
    System.out.println("Random number generated: " + RandomNumber);

}

public static int getRandom(int[] array) {
    int rnd = new Random().nextInt(array.length);
    return array[rnd];
}

public static void main(String[] args) throws InterruptedException {
    Randomizer r = new Randomizer();
    r.randomizer();

}

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37072842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档