-
JAVA数组任意取值,任意取一个值,随机取值
2018-12-19 15:26:15Integer [] items = new Integer[]{-2,-3,-4,-5,-1,1,2,3,4,5}; int a= (int) Math.floor(Math.random()*items.length); Integer i = items[a]; System.out.println("kdjkjdjkj"+i);Integer [] items = new Integer[]{-2,-3,-4,-5,-1,1,2,3,4,5}; int a= (int) Math.floor(Math.random()*items.length); Integer i = items[a]; System.out.println("kdjkjdjkj"+i);
-
java生成随机数用于数组中随机取值
2021-01-28 11:42:41} /** * 生成不重复的s个数量的[0-n)区间的随机数 * @param n 取值的数字区间[0-n) * @param s 获取的随机数数量 * @return */ private static ArrayList getDiffNO(Integer n, Integer s) { //返回的list ...每天的日期宜和忌是怎么决定的。肯定不是这种。
public static void main(String[] args) {
//数据源
String f = "搬家、装修、结婚、入宅、领证、动土、出行、旅游、破土、修造、嫁娶、移徙、盖屋、冠笄、开池、竖柱、归宁、放水、针灸、置产、开业、开工、订婚、安葬、开张、求嗣、赴任、祈福、祭祀、开市、纳财、启钻、除服、纳采、立券、求医、塞穴、斋醮、招赘、行丧";
String[] a = f.split("、");
//生成不重复的s个数量的[0-n)区间的随机数
ArrayList<Integer> list=getDiffNO(40, 5);
//取值-赋值
String[] aa = new String[list.size()];
for (int i = 0; i < list.size(); i++) {
aa[i]=a[list.get(i)];
}
//结果
System.out.println(Arrays.toString(aa));System.out.println("结束");
}/**
* 生成不重复的s个数量的[0-n)区间的随机数
* @param n 取值的数字区间[0-n)
* @param s 获取的随机数数量
* @return
*/
private static ArrayList<Integer> getDiffNO(Integer n, Integer s) {
//返回的list
ArrayList<Integer> list = new ArrayList<Integer>();
Random rand = new Random();
boolean[] bool = new boolean[n];
int num = 0;
for (int i = 0; i < s; i++) {
do {
// 产生的数相同继续循环
num = rand.nextInt(n);
} while (bool[num]);
bool[num] = true;
list.add(num);
}
return list;
} -
Java数组之一维数值数组之随机数统计
2020-11-27 09:23:09在 Java 中有一个 Random 类,他可以在指定的取值范围内随机产生数字。 Random 类 要想使用 Random 类,第一步需要导入 java.util.Random 这个包。 import java.util.Random; 第二步需要创建 Random 对象。 Random ...Java数组之一维数值数组之随机数统计
在 Java 中有一个 Random 类,他可以在指定的取值范围内随机产生数字。
Random 类
要想使用 Random 类,第一步需要导入 java.util.Random 这个包。
import java.util.Random;
第二步需要创建 Random 对象。
Random random = new Random();
创建完 Random 对象之后,我们就可以使用它提供的方法来创建随机数了。
方法名 方法说明 nextDouble() 方法 返回 0.0 至 1.0 之间的 double 类型值 nextFloat() 方法 返回的是 0.0 至 1.0 之间的 float 类型值 nextInt(int n)方法 返回的是 0(包括)至 n(不包括)之间的 int 值 代码示例:
public class RandomTest { public static void main(String[] args) { Random random = new Random(); System.out.println(random.nextInt(10)); System.out.println(random.nextFloat()); System.out.println(random.nextDouble()); } }
第一次运行结果:
4 0.60541 0.7046691676099207
第二次运行结果:
3 0.055246472 0.47445795351116005
我们可以看到第一次运行结果和第二次运行的结果是不一样的。当我们想要第一次和第二次运行结果一致的话,可以在创建 Random 对象的时候传入一个 Long 类型的数字,这个数字叫随机种子。具有相同随机种子的 Random 对象生成的随机数是一样的。
示例:
public static void main(String[] args) { // 创建一个Random对象并传入随机种子 Random random = new Random(10); System.out.println(random.nextInt(10)); System.out.println(random.nextFloat()); System.out.println(random.nextDouble()); }
第一次运行结果:
3 0.44563425 0.2578027905957804
第二次运行结果:
3 0.44563425 0.2578027905957804
例题:统计数组中每个随机数出现的次数
具体要求如下:
1.接收给定的数据(如:4 88,其中第一个数代表数组长度,第二个数代表随机数种子);
2.创建数组并添加随机数(随机数介于 0-19 之间);
3.输出随机数出现的次数(出现次数大于 0 才输出);
4. 按随机数大小排序输出。注意:数字分隔符为空格。
例:
测试输入:20 9
预期输出:
4出现了:1 次 6出现了:3 次 8出现了:2 次 9出现了:1 次 11出现了:1 次 13出现了:3 次 15出现了:2 次 16出现了:2 次 17出现了:1 次 18出现了:2 次 19出现了:2 次
import java.util.Random; import java.util.Scanner; public class RandomTest { public static void main(String[] args) { // 请在Begin-End间编写代码 /********** Begin **********/ // 接收给定数据 Scanner input = new Scanner(System.in); int n = input.nextInt(); int l = input.nextInt(); // 创建Random对象,并设置随机种子 Random random = new Random(l); // 定义数组添加数据 int a[] = new int [n]; for(int i=0;i<n;i++){ a[i]=random.nextInt(20); } // 统计每个数出现的次数 int b[]= new int [n]; for(int i=0;i<n;i++){ b[a[i]]++; } // 输出结果 for(int i=0;i<20;i++){ if(b[i]>0) System.out.printf("%d出现了:%d 次\n",i,b[i]); } /********** End **********/ } }
-
Java数组乱序
2018-11-26 19:43:48java的数组乱序,把自己的理解写出来,有错误希望指出。 通过随机数做下标来跟后面的数作交换。 总的来说就是就是把取过的往后移,没取过的往前拿,同时不断缩小随机数的取值范围。每次交换的都是没取过的值 也...java的数组乱序,把自己的理解写出来,有错误希望指出。
通过随机数做下标来跟后面的数作交换。 总的来说就是就是把取过的往后移,没取过的往前拿,同时不断缩小随机数的取值范围。每次交换的都是没取过的值
也可以通过一个新数组来存储每次随机下标取到的值,来达到乱序的目的,因为每次取到的值都是不同的。具体可以自己写代码实现看下public static void test() { Random rd =new Random(); String [] str= {"指","鹿","为","马"};//乱序前的数组 for (int i = 0; i < str.length; i++) { int c = rd.nextInt(str.length - i);//接收每次产生的随机数 System.out.print(c+" ,");//打印随机数 //交换数组内容 String tem = str[str.length - i - 1]; str[str.length-1-i] =str[c]; str[c] = tem; } System.out.println(); System.out.println(Arrays.toString(str)); }
随机下标,且每次循环后取值范围都减一,以此来达到不会取到倒数第i个及之后的值
int c = rd.nextInt(str.length - i);
随机下标取中的值每次于倒数第i个值做交换
String tem = str[str.length - i - 1]; str[str.length-1-i] =str[c]; str[c] = tem;
运行效果图
过程解释图
八次乱序结果图
编程大白,第一次写博客。写的不好请指教。
…苦笑脸 -
创建一个长度为6的数组,要求随机取值为1-30,同时元素值各不相同 Java
2020-12-19 09:35:47创建一个长度为6的数组,要求随机取值为1-30,同时元素值各不相同 方法一:创建标志flag public class Test{ public static void main{ int[] arr6 = new int[6]; for (int i = 0; i < arr6.length; i++) { ... -
java-创建一个长的为6的int型数组,要求取值为1-30中的任意值,同时元素值各不相同
2020-09-24 22:14:25该方法随机生成[0,1) -->左闭右开 2、不重复 每生成一个随机数,都要和之前数组元素的值进行比较 如果相同,则需要重新赋值 代码如下: public class ArrayTest4 { public static void main(String[] args) { ... -
JAVA经典面试题:创建一个长度为n的int型数组,要求取值为[1~30],同时元素值各不相同
2020-11-25 15:23:01首先规定数组 int[] number=new int[N];//动态方法定义 随机生成数的范围以及所应用的函数 int temp;//暂时存放随机数 temp=(int)(Math.random()*30+1); //Math.random()的范围是[0,1)左闭右开 思路,利用for... -
初始一个取值范围为[1,10]随机数组,去掉重复.
2016-08-04 13:24:50package lianx1;... * 初始一个取值范围为[1,10]随机数组,去掉重复. */ public class ArrayTest8 { public static void main(String[] args) { int a[] = new int[10]; int x = 0; for (int i = -
将数组中的内容随机打乱
2017-10-27 22:45:08遍历当前数组,Random.next位置下标取值放入新的数组中,为了一定随机不会取重,再加判断是否已加入过新的数组中 二、 正序或逆序遍历数组;将当前位置的元素与Random.next位置的元素调换位置 [code="... -
java7种数组排序算法
2020-09-30 16:27:50import java.util.Random;...//随机生成一个长度为10,取值1~100之内的整数数组 Random rand = new Random(); int[] arr = new int[10]; for (int i = 0; i <10; i++) { arr[i] = rand.nextIn -
Java 生成随机密码
2018-12-13 19:40:33利用Random方法生产随机密码。 将字母,数字,符号拆开...然后循环取值,每一次从数组中随机拿取字符,并把这个字符随机放入生产的密码字符串中的某个位置。 public final static String[] LOWER_CASES = { "a", ... -
Java的学习记录:数组的基本操作
2020-05-31 15:11:041.生成随机长度且不重复的数组 public class Test { public static void main(String[] args) { //注意100以内取值范围为0~99,若要是1~100,则为:int num = rand.nextInt(100)+1, // 若想取到0~100,则应该写... -
【Java语言】练习系列----随机生成一个长度为6且各个元素均不相同的整形数组
2021-04-11 15:57:56创建一个长度为6的int型数组,要求取值为1-30,同时元素值各不相同 具体代码实现如下: public class ArrayTest { public static void main(String[] args) { // 1、动态初始化数组 int[] arr = new int[6]; /... -
Java小白:Random类和对象数组
2020-07-18 20:46:53Random类 ...获取一个随机的int数字(参数就是取值范围,左闭右开区间)int r = nextInt(int a); int num = ran.nextInt(3); 代表的是[0,3),也就是取(0~2) import java.util.Random; /*Random类的使用,三个 -
Java基础——随机生成100个数,任何单值重复不超过两次,取值1~50之间的整数(可作为练习题锻炼自己)
2020-10-08 15:32:14问题:随机生成100个,任何单值重复不超过两次,取值1~50之间的整数 知识点: 思路:老师写的代码,还没有完全吃透理解,先记录下来 Random rand = new Random(); final int N=100; int[]arr = new int[N]; int... -
Java学习-----简易双色球彩票游戏
2018-01-10 20:11:15简易双色球小游戏 ... -设置一个数组,系统随机取值,取到一个值,就将设置好的数组中该值设置为-1; -判断是否中奖,中几等奖的逻辑; -对结果进行排序输出。 public class Lottery{ public static void m -
Java集合总结
2017-06-25 22:04:18优点:查找快(因为ArrayList底层使用数组实现,数组的特点就是可以随机取值)。 缺点:增删慢(数组中的数据必须是连续的,如果被删除的数据在数组的中间,那么被删除的数据后边的元素必须依次向前移动,这很显然... -
页面生成随机验证码代码
2020-03-16 20:46:53一.验证码思路 ... import java.util.Random; import java.util.Scanner; public class TestRandom { public static void main(String[] args) { ... // 定义一个字符型数组用来存放密码数据随机取值的内容 ... -
java Math.random()的使用
2020-05-09 13:18:01Math.random()是令系统随机选取大于等于 0.0 且小于 1.0 的伪随机 double 值,是Java语言常用代码。 Math.random()*b 左边闭区间取值0,右边开区间取值b Math.random()*b + 1 左边闭区间取值0+1,右边开区间取值b+... -
java实现100个不重复随机数
2018-05-02 16:26:01是建立两个数组,一个是1-100,另一个从其中随机取值。这里可以设置一个end变量记录取值长度。 3.利用List中提供的Colections.shuffle(),但是要先转成List,这里需要注意asList只能取值,但是不能增加或删除.具体... -
java 算法
2012-03-29 09:01:35用半角的特殊符号代替全角的特殊符号,数组和数组之间的转换代码,从资源文件里读取值的类,一个随机类,计算传入值是否星期六,为RootPaneContainer组件添加键盘事件,将数组转成字符串 在调试或记录日志时用到,... -
整数1~30(1-n)随机乱序排列,无重复数字,不用if判断。
2020-02-20 11:35:38最近学java,数组部分有一题: 创建一个长度为6的int型数组,要求取值为1-30,同时元素值各不相同。解法如下: int[] arr = new int[6]; //随机生成1-30范围内数字 for (int i = 0; i < arr.length; i++) {// ... -
Java-双色球
2017-12-16 16:12:191.随机生成7位数的数组为大奖号码(前6位红球每个数值取值范围为1~33,而且6个数值不能相同,第七位篮球取值范围为1~16) 2.判断购买号码为手动输入还是机选(如为手动输入,将用for循环一次从控制台输入一个依次数... -
【Java】扑克牌中的顺子
2020-04-05 14:28:45题目描述 从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。...数组的数取值为 [0, 13] .... -
Java模拟一副54张牌的洗牌过程_ArrayList学习
2019-01-19 12:34:27思路 牌有1-13个数字,4种花色,还有2张大小王。洗牌过程,最终就是要实现54张牌的随机排序的结果。 所以,我想到了:先要初始化,构造出一副牌的数组,...其取值范围为已经放入数组的元素个数加1,最后返回这个数组... -
java之学习记录 11 - 1 - 计数排序
2021-04-15 13:00:55假设数组中有10个整数,取值范围为0~10,要求用最快的速度把这10个整数从小到大进行排序。 可以根据这有限的范围,建立一个长度为11的数组。数组下标从0到10,元素初始值全为0 假设数组数据为:9,1,2,7... -
面试题61 扑克牌中的顺子(java)
2020-02-29 22:43:36从扑克牌中随机抽5张牌,判断是不是一个顺子,即这5张牌是不是连续的。2~10为数字本身,A为1,J为11,Q为12,K为13,而大、小王为 0 ,可以看成任意数字。A 不能视为 14。...数组的数取值为 [0, 13] . ... -
Java集合篇(二):Set
2019-07-06 14:45:00我们知道在一般的数组中,元素在数组中的索引位置是随机的,元素的取值和元素的位置之间不存在确定的关系,因此,在数组中查找特定的值时,需要把查找值和一系列的元素进行比较,此时的查询效率依赖于查找过程中比较...