最近有几个朋友都在做项目中的 抽奖部分,可是网上抽奖,多少有那么点水份。
在Java 中我们可以使用java.util.Random类来产生一个随机数发生器。它有两种形式的构造函数,分别是Random()和Random(long seed)。Random()使用当前时间即System.currentTimeMillis()作为发生器的种子,Random(long seed)使用指定的seed作为发生器的种子。 很多应用程序会发现 Math
类中的 random
方法更易于使用。
做一个例子,大家可以找出下面的问题,主要是性能方面. 例子是随机产生一个只包含x个8的x的(int)5位数;
问题如下:随机产生一个5位数,要求其中包含一个8或者几个8,用户个人设置显示的个数
1.首先我们来看下规律
一个5位数字,只包含一个8的有多少
个位 十位 百位 千位 ........
08 18
28
38
48
58
68
78
98
1 9 9*9 9*9 *9 ...........
其实上面有点迷惑啦大家的思路,但是要看个人咋想!!用户在设置多少的时候也不能超过最大值。
1.先看mian方法
Random rd = new Random();
int num = rd.nextInt(99999 - 9999) + 9999; // 精确定位5位数值
产生精确定位5位数值,大家在其他使用可以随便定义
具体程序如下,相信大家一定了解,如果不了解,就运行下..下班拉,回家戳麻将!!!
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class RmInt {
public int getNum(int randomNum, int nb) {
int num_5 = randomNum / 10000; // 万位
int num_4 = randomNum % 10000 / 1000; // 千位
int num_3 = randomNum % 1000 / 100; // 百位
int num_2 = randomNum % 100 / 10; // 十位
int num_1 = randomNum % 10 / 1; // 个位
int[] nums = new int[] { num_5, num_4, num_3, num_2, num_1 };
// 获得8的个数
int num = this.getloop(nums);
// 返回符合要求的randomNum
if (nb == num) {
return randomNum;
}
return 0;
}
/**
* 判断随机数里8的个数 有1个8 returnNum=1
*/
public int getloop(int[] nums) {
int returnNum = 0;
// 循环将5位数各个位置的数值比较,是8的个数相加
for (int j = 0; j < nums.length; j++) {
int k = nums[j];
if (k != 0 && k % 8 == 0) {
returnNum += 1;
}
}
return returnNum;
}
public static void main(String[] args) {
RmInt r = new RmInt();
/*
* Random 随机数生成器 获取5位数 nb 用户设置8的个数 arrInt 符合用户要求的数值
*/
int userSize = 20;//用户设置需要的个数
int nb = 2;//含8的个数
List arrInt = new ArrayList();
int num_nub = 0;// 循环次数
while (num_nub < userSize ) {
Random rd = new Random();
int num = rd.nextInt(99999 - 9999) + 9999; // 精确定位5位数值
// 调用rdnum方法
int rdnum = r.getNum(num, nb);
//判断下如果设置的rdnum不为0(不符合要求为0)
if (rdnum != 0) {
arrInt.add(rdnum);
num_nub += 1;
}
}
for (int t = 0; t < arrInt.size(); t++) {
System.out.print(t+":"+arrInt.get(t)+'\n');
}
}
}
上面是产生随机数的一种思路,下面再说种,具体的要求和上面一样,大家来看对不对
我按上面的办法得到一个不包含8的4位数的随机数值比如2456,然后1-5之间我再生成一个,那么1-5无论生成几都把他当成8
比如生成2,那么最后得到数值28456 比如生成1,那么最后得到数值82456
这样的话我们就遗漏9,当然如果是实现方面没有问题,但是和你的需要可能不一样。我只说是一种思路,不去说他在那里使用不好,那里使用好。。
分享到:
相关推荐
StdRandom类是Java语言中用于生成随机数的工具类,提供了一系列的静态方法来满足不同用例的需求。该类的主要功能是生成随机数,包括基本的随机数、uniform分布随机数、bernoulli分布随机数、gaussian分布随机数等。...
这些概率按照以下顺序递减:0(50%)、1(20%)、2(15%)、3(10%)、4(4%)和 5(1%)。 在 PercentageRandom() 方法中,作者使用 Math.random() 方法生成一个双精度浮点数的随机数,然后根据这个随机数判断返回...
这个函数返回一个介于0(包含)到1(不包含)之间的随机浮点数,可以通过乘以特定范围并进行取整来生成指定范围内的整数。例如,生成1到10的随机整数,可以使用`Math.floor(Math.random() * 10) + 1`。 三、源码...
在这个实例中,我们使用Random类生成了一个随机数,范围是[50,100),然后判断这个数是否是3的倍数。 Random类的应用 Random类有很多实用的应用场景,例如: * 生成随机的用户ID * 生成随机的验证码 * 生成随机的...
这个“S7-300生成随机数.rar”压缩包很可能包含了关于如何在S7-300 PLC中实现随机数生成的详细教程或代码示例。 生成随机数在工业控制中有多种用途,例如模拟真实世界的不确定性、进行测试与调试、或者在一些随机化...
VBA生成不重复的随机数源码.txt
在VC++中,可以使用`<cstdlib>`库中的`rand()`函数生成[0, RAND_MAX]范围内的均匀分布随机数,通过适当调整范围可满足特定需求。 - **正态分布(Normal Distribution)**:也称为高斯分布,具有钟形曲线特征,其...
java生成16位随机数
java使用StdRandom生成随机数.doc
如果你想生成的是浮点数,可以使用“随机数.浮点”命令,同样提供两个参数,表示最小值和最大值。 在JavaScript中,生成随机数的方法有所不同。你可以使用`Math.random()`函数,它会返回一个介于0(包括)和1(不...
在Java编程语言中,生成随机数是一项常见的任务,特别是在各种算法和模拟场景中。要找到“最大的随机数”,首先我们需要了解Java中生成随机数的方法。Java提供了`java.util.Random`类来生成随机数。下面我们将深入...
1. **RAND()函数**:这是Excel中最基础的随机数生成函数,它会返回一个在0(包含)到1(不包含)之间的随机浮点数。例如,`=RAND()` 将生成一个0到1的小数。 2. **修改RAND()的取值范围**:如果你需要生成特定范围...
Java简易随机数生成 下载完请输入测试代码 public static void main(String[] args) { System.out.println(random(50,100));//example System.out.println(random(50.0,100.0)); }
1. **RAND()函数**:这是Excel中最基本的随机数生成函数,它会返回一个介于0(包括)和1(不包括)之间的随机小数。例如,`=RAND()` 将生成一个0到1之间的随机数。 2. **调整RAND()的取值范围**:如果需要生成其他...
Java生成32位随机数,短位随机数工具类
在 Java 编程中,生成随机数是非常常见的需求,例如在测试、模拟、游戏等场景中。随机数可以使用多种方法生成,本文将对 Java 生成随机数的常用方法进行分析。 1. 使用 Math.random() 生成随机数 Math.random() ...
在Java编程语言中,生成随机数是常见的需求,可以用于模拟、测试、加密等多种场景。本文将详细探讨Java中生成随机数的两种主要方法:`java.lang.Math.random()`静态方法和`java.util.Random`类。 首先,我们来看`...
本资源“VC 在指定的区间内生成随机数.rar”提供了一个源码示例,帮助开发者理解如何在C++中实现这一功能。 在C++中,生成随机数通常涉及到`<cstdlib>`或`<random>`库。`<cstdlib>`库包含`rand()`函数,这是一个...
在Java编程中,生成十个不重复的随机数是一项常见的任务,尤其在进行数据模拟、测试或者游戏设计等场景。要实现这个功能,我们需要利用到Java的集合框架和Math类中的随机数生成方法。下面我们将详细讲解如何实现这个...