gpt4 book ai didi

java - java中随机数的生成

转载 作者:行者123 更新时间:2023-11-29 06:22:37 25 4
gpt4 key购买 nike

我想创建 30 个表,其中包含以下字段。例如,

Service_ID   Service_Type     consumer_feedback   75           Computing        1                   35           Printer          0                   33           Printer         -1                3 rows in set (0.00 sec)
mysql> select * from consumer2;Service_ID   Service_Type     consumer_feedback     42           data             0  75           computing        0
mysql> select * from consumer3;Service_ID   Service_Type     consumer_feedback   43           data            -1  41           data             1   72           computing       -1

As you can infer from the above tables, I am getting the feedback values. I have generated these consumer_feedback values, Service_ID, Service_Type using the concept of random numbers. I have used the function:

int min1=31;//printer
int max1=35;//the values are generated if the Service_Type is printer.
int provider1 = (int) (Math.random() * (max1 - min1 + 1) ) + min1;
int min2=41;//data
int max2 =45
int provider2 = (int) (Math.random() * (max2 - min2 + 1) ) + min2;
int min3=71;//computing
int max3=75;
int provider3 = (int) (Math.random() * (max3 - min3 + 1) ) + min3;
int min5 = -1;//feedback values
int max5 =1;
int feedback = (int) (Math.random() * (max5 - min5 + 1) ) + min5;

我需要将 Service_Types 均匀分布在所有 30 个表中。同样,除了 0 和 -1 之外,我需要多次生成 1 的反馈值。

最佳答案

如果您有 30 个数字,并且您需要通过您的方法找到这 30 个数字,那么随机生成器将不适合您。在那种情况下,我认为将这30个数字添加到一个List并调用方法[Collections.shuffle][1]来打乱列表的内容,然后简单地用一个遍历它会更可取... 每个 block 。如果您想要的是真正的随机数,那么您应该使用 Random 类,正如 Stephen 所解释的那样。

请记住,您不应该在每次需要随机数时都创建 Random 类的新实例:

public Random()Creates a new random number generator. Its seed is initialized to a value based on the current time:   public Random() { this(System.currentTimeMillis()); }Two Random objects created within the same millisecond will have the same sequence of random numbers.

来自 http://java.sun.com/j2se/1.4.2/docs/api/java/util/Random.html#Random()

使用 Random.nextInt(int n) 是一个很好的做法,提供最大整数值,作为常见做法 Random.nextInt() % n不会生成均匀分布的数字。

如果你需要一个介于 50 和 100 之间的数字,就这么简单:

Random r = new Random();public int yourMethod() {   return r.nextInt(50) + 50;}

[1]: http://java.sun.com/j2se/1.4.2/docs/api/java/util/Collections.html#shuffle(java.util.List , java.util.Random)

关于java - java中随机数的生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2437042/

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