RandomUtil随机数工具类-程序员宅基地

技术标签: java  工具类  java工具类  

package com.imooc.test;

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class RandomUtil {

	/** 
	  * 在一定范围内生成给定数量的不重复随机数, 如果开始到结束的数量少于num的数量会抛出数组越界的错误, 
	  * 如果相等则会返回一个排好序的数组,即从begin到end 否则返回随机数组(list),不重复,不排序 
	  * 
	  * @author Cesar 
	  * @param begin 
	  *            开始值 
	  * @param end 
	  *            结束值 
	  * @param num 
	  *            要求数量 
	  * @return 
	  */ 
	 public static List<Integer> getRandomNum(int begin, int end, int num) { 
	  int size = end-begin+1; 
	  int[] all = new int[size]; 
	  Random random = new Random(); 
	  List<Integer> result = new ArrayList<Integer>(); 
	  int x; 
	  if (size < num) { 
	   throw new ArrayIndexOutOfBoundsException("数组越界"); 
	  } else if (size == num ) { 
	   for (int i = 0; i < num; i++) { 
	    result.add(begin++); 
	   } 
	  } else { 
	   for(int i=0;i<size;i++){ 
	    all[i] = begin++; 
	   } 
	   for(int i = 0;i<num;i++){ 
	    x = random.nextInt(size);//获得坐标 
	    result.add(all[x]); 
	    all[x] = all[size-1];
	    size--; 
	   } 
	  } 
	  return result; 
	 } 
	 
	 public static void main(String[] args) {
		 System.out.print( getRandomNum(100, 200, 20));
		
	}
}

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/junlong750/article/details/84741524

智能推荐

OpenWrt 4G路由器检测上网,然后开启 WIFI的脚本_wifi路由器脚本-程序员宅基地

文章浏览阅读1.3k次。OpenWrt 4G路由器检测上网,然后开启 WIFI的脚本MT7620A 4G的路由器刷了OpenWrt系统,为了实现4G在线开启WIFI 功能,否则关闭WIFI,首先在系统设置当中默认关闭WIFI功能,接下来建立一个Shell脚本,如下:#!/bin/bash#此脚本用于检测能否上网,是则开启WIFI功能,否则关闭。#建议用定时任务执行此脚本,如每分钟执行一次,也可修改此脚本用于死循环..._wifi路由器脚本

MFC程序崩溃的友好处理-程序员宅基地

文章浏览阅读69次。软件总存在这样或者那样的bug。虽然测试员已经在很努力的寻找问题,程序员也在汗流浃背的除虫,但是总会有一些情况被遗漏或者不可预测,比如用户的硬件环境、网络状况、操作系统差异等等,不一而足。而导致的结果则是弹出下面这样一个让用户摸不着头脑又恼火的提示,然后崩溃掉,令程序员尴尬不已。而在一些成熟的软件产品中,程序崩溃时我们看到的却是另外一番画面,比如QQ:又比如迅雷:..._mfc程序出现 appcrash

【计算机组成实验】四位加法器_四位串行进位加法器-程序员宅基地

文章浏览阅读7.5k次,点赞2次,收藏34次。并行地形成各级进位,各进位之间不存在依赖关系,因而这种方式也称为先行进位、同时进位或跳跃进位。_四位串行进位加法器

selenium对元素进行操作(三):日期控件处理_selenium日期控件处理-程序员宅基地

文章浏览阅读7.6k次,点赞3次,收藏36次。1分钟了解一个测开小知识:selenium对元素进行操作(三):日期控件处理如果日期控件支持输入,可以直接使用send_keys,按照文本框录入时间。但是大多数日期控件,都是这种格式<input type="text" autocomplete="off" readonly="readonly" placeholder="选择日期" class="aty-input aty-input-hasicon">控件的html描述是这样婶的。可以看到readonly="r_selenium日期控件处理

华为软开云新手使用过程-程序员宅基地

文章浏览阅读2.2k次。我们公司说是小公司,老板说每年资金进场很大,说是大公司,来来回回,人的流动性挺高的。公司有从华为出来的"大牛",姑且称之为大牛吧,说要为了规范我们项目开发的流程和代码的质量,极力推荐使用软开云。本人也是一头雾水,因为野惯了,还真不习惯,找了不少资料,终于部署成功和拉取和上传代码了。工作里面的需求什么的略过...1.代码要上传,需要先建立一个仓库,点击下面的代码托管,再点击普通新建,为什..._软开云

计算机网络基础知识点-程序员宅基地

文章浏览阅读7k次,点赞5次,收藏54次。1.网络介绍由通信介质将地理位置不同、相互独立的计算机连接起来,实现数据和资源共享。2.网络分类2.1 按照拓扑结构分类1.总线型(一根线上串好多计算机)特点:两端信号终结器,分叉处有T型头2.环形网络效率很低,同一时间只有两个计算机通信,这两台计算机有其自己的令牌。3.星形线路利用率虽然高,但是线路单一,一旦坏了就少了一条线路。且中央节点压力大。 单点护照网络利用率高,但是中央节点压力大。2.2 按照地域分类1.局域网一个公司、一个家庭2.城域网一个区、一个城市、一个国家_计算机网络基础知识点

随便推点

多频外差_多频外差的程序-程序员宅基地

文章浏览阅读526次。% 程序开始clc;close all;clear;% 图片的初始化width = 1280; heigth = 800;% 三频率freq = [70 64 59];C = cell(3,4); for i=1:3 for j=1:4 C{i,j} = zeros(heigth,width); endend% 利用余弦函数计算12张图的灰度值% 图像的生成% 三种频率,四组相位for i = 1:3 % 对应三种不同的频率 _多频外差的程序

[每日一题] 11gOCP 1z0-052 :2013-09-9 PL/SQL package body...........................................A46_包规范和包体都能声明变量且声明的变量都是全局性的,即都可以在外部被访问到-程序员宅基地

文章浏览阅读2.6k次。[每日一题] 11gOCP 1z0-052 :2013-09-9 PL/SQL package body_包规范和包体都能声明变量且声明的变量都是全局性的,即都可以在外部被访问到

游戏玩家管理系统-程序员宅基地

文章浏览阅读2.6k次,点赞5次,收藏40次。实体类package com.stage3.haungzixiao.exam1.entity;public class Player { private Integer id; //玩家ID private String name; //玩家名称 private Integer level; //玩家等级 private String game;//游戏名称 private String time;//注册时间 private Integer st..._玩家管理系统

Vue2.x项目整合ExceptionLess监控_vue2使用exceptionless-程序员宅基地

文章浏览阅读177次。一直以来我们都是用Sentry做项目监控,不过前段时间我们的Sentry坏掉了(我搞坏的)但监控又是很有必要的,在sentry修好之前,我想先寻找一个临时的替代方案,同时发现网上关于ExceptionLess的资料少得可怜,ExceptionLess官方的文档也不是很完善,翻了好久文档和源码,于是有了本文……_vue2使用exceptionless

VS Code搭建Python开发环境_为什么没人用vs写python-程序员宅基地

文章浏览阅读1.5k次。VS Code(Visual Studio Code)是一个由微软开发的免费的跨平台代码编辑器,可以在Windows、Linux和macOS上运行。它支持多种编程语言和文件格式,并具有许多功能和插件,可以增强编辑器的功能。VS Code具有内置的调试器、Git版本控制、智能代码完成、代码片段和扩展等功能,可以提高开发人员的生产力和代码质量。它也是一个开源项目,并且有一个活跃的社区来支持和扩展它的功能。最近我又增加了GitHub Copilot插件,编程爽得简直不要不要的。_为什么没人用vs写python

Pytorch交叉熵损失(CrossEntropyLoss)函数内部运算解析_crossentropyloss(reduction="mean")-程序员宅基地

文章浏览阅读5.5k次,点赞2次,收藏17次。  对于交叉熵损失函数的来由有很多资料可以参考,这里就不再赘述。本文主要尝试对交叉熵损失函数的内部运算做深度解析。 1. 函数介绍  Pytorch官网中对交叉熵损失函数的介绍如下:CLASS torch.nn.CrossEntropyLoss(weight=None, size_average=None, ignore_index=- 100,reduce=None, reduction=‘mean’, label_smoothing=0.0)  该损失函数计算输入和目标值之间的交叉熵损失。_crossentropyloss(reduction="mean")

推荐文章

热门文章

相关标签