随机生成不重复的几个数(Unity)

using System.Collections.Generic;
using UnityEngine; /// <summary>
/// 随机数管理类
/// </summary>
public class RandomHelper
{
/// <summary>
/// 生成指定位数的随机码(数字)
/// </summary>
/// <param name="length">生成数字的长度</param>
/// <param name="min"></param>
/// <param name="max"></param>
/// <returns></returns>
public static string GenerateRandomCode(int length, int min, int max)
{
var result = new System.Text.StringBuilder();
for (var i = 0; i < length; i++)
{
var random = new System.Random(System.Guid.NewGuid().GetHashCode());
result.Append(random.Next(min, max));
}
return result.ToString();
} /// <summary>
/// 生成指定个数的不重复随机数列表
/// </summary>
/// <param name="length">列表的长度[不得大于min和max之间随机数的总个数]</param>
/// <param name="min"></param>
/// <param name="max"></param>
/// <returns></returns>
public static List<int> GenerateRandomList(int length, int min, int max)
{
List<int> randomList = new List<int>();
if (length <= (max - min))
{
for (var i = 0; i < length; i++)
{
int random = Random.Range(min, max);
if (randomList.Contains(random))
{
i--;
continue;
}
else
{
randomList.Add(random);
}
}
}
return randomList;
} /// <summary>
/// 索引法随机
/// </summary>
/// <param name="minValue"></param>
/// <param name="maxValue"></param>
/// <returns></returns>
public static int[] GetIndexRandomNum(int minValue, int maxValue)
{
System.Random random = new System.Random();
int sum = Mathf.Abs(maxValue - minValue);//计算数组范围
int site = sum;//设置索引范围
int[] index = new int[sum];
int[] result = new int[sum];
int temp = 0; for (int i = minValue; i < maxValue; i++)
{
index[temp] = i;
temp++;
} for (int i = 0; i < sum; i++)
{
int id = random.Next(0, site - 1);
result[i] = index[id];
index[id] = index[site - 1];//因id随机到的数已经获取到了,用最后的一个数来替换它
site--;//缩小索引范围
}
return result;
}
}
随机生成不重复的几个数(Unity)的更多相关文章
- PHP随机生成不重复的8位卡号(数字)和卡密(字符串)
一.生成不重复的随机数字,可自定义长度(最多支持10位数) /** * 生成不重复的随机数字(不能超过10位数,否则while循环陷入死循环) * @param int $start 需要生成的数字开 ...
- JS随机生成不重复数据的代码分享
JS随机生成不重复数据. 代码如下: <script> // 定义存放生成随机数的数组 var array=new Array(); // 循环N次生成随机数 for(var i = 0 ...
- C#随机生成不重复邀请码&创建登录Token&转换人民币大小金额
/// <summary> /// 创建登陆Token /// </summary> /// <param name="length">< ...
- PHP随机生成指定时间段的指定个数时间
/** * 生成某个范围内的随机时间 * @param <type> $begintime 起始时间 格式为 Y-m-d H:i:s * @param <type> $endt ...
- 自制-随机生成不重复的数组 --算法,egret平台下的TS code
感觉这个算法经常会用到,前段时间写过一次,现在push出来.原理是有两个数组,一个数组存放随机数,然后从另一个数组提取相关的数,然后把另一个数组的大小-1,remove掉这个数,unity里也是这个原 ...
- 生成不重复随机数,int转 TCHAR 打印输出
在0~n 中 随机去除不重复的k个数 int k=100; int n=80000; for(int i=0;k>0&&i<n;i++) { if((bigrand()%( ...
- c#部分---网吧充值系统;简易的闹钟;出租车计费;简单计算器;对战游戏;等额本金法计算贷款还款利息等;随机生成10个不重复的50以内的整数;推箱子;
网吧充值系统namespace ConsoleApplication1 { class Program { struct huiyuan { public string name; public st ...
- 转:在0~N(不包括N)范围内随机生成一个长度为M(M <= N)且内容不重复的数组
1. 最朴素暴力的做法. void cal1() { , j = , num = ; int result[M]; result[] = rand() % N; //第一个肯定不重复, 直接加进去 ; ...
- 高级软件工程第二次作业:随机生成N个不重复的已解答完毕的数独棋盘
#include <stdio.h> #include "SuduCheck.h" ][],int i,int j,int k) //判断是否可以将第i行.第j列的数设 ...
- Java的ArrayList实现随机生成N-M之间N个不重复的随机数
在此之前我使用Java的数组实现了产生N-M之间的不重复的随机数,下面是使用数列ArrayList实现同样的功能,代码如下: /** * 随机生成 N--M,N个不重复随机数 使用ArrayList ...
随机推荐
- cgroup和Linux Namespace基础操作
一.开头 接触过docker的同学多多少少听过这样一句话"docker容器通过linux namespace.cgroup特性实现资源的隔离与限制".今天我们来尝试学习一下这两个东 ...
- SQL server数据库中nvarchar和varchar的区别
先说结论: 存储内容含有汉字的使用nvarchar 存储内容全是英文没有汉字的使用varchar 1.varchar是非Unicode可变长度类型,nvarchar是Unicode可变长度类型. 2. ...
- D3简介
(一)D3简介 一.D3是什么 一张图片价值相当于一千个字 D3的全称是 Data-Driven Documents,直译为:数据驱动的文档 D3是一个javaScript的函数库,是用来做数据可视化 ...
- MxDraw云图平台 2022.08.24更新
SDK开发包下载地址: https://www.mxdraw.com/ndetail_30187.html 1. 增加对像扩展数据功能 2. 增加CAD GIS使用功能 https://www.mxd ...
- 实验1task1
<实验结论> #include <stdio.h> #include <stdlib.h> int main() { printf(" O \n&qu ...
- [django]钩子函数的一些细节(clean)
函数名 说明:clean_后面跟着的是需要校验字段名称 示例: class RelUserReset(forms.ModelForm): def clean_confirm_password(self ...
- 《基于CNN和SVM的人脸识别系统的设计与实现》论文笔记十六
一.基本信息 标题:基于CNN和SVM的人脸识别系统的设计与实现 时间:2021 来源:计算机与数字工程 关键词: 人脸识别;卷积神经网络;支持向量机;深度学习; 二.研究内容 问题定义: 针对人脸识 ...
- linux:day01 计算机基础 随堂笔记 马
本课程内容目录(前30天) 一,计算机基础 1,机械硬盘是比较慢的,如果有条件的话,还是换成固态硬盘有个120G就够了,价钱大概500G 700元 2,视频从一台机器拷贝到另外一台机器,复制的时候要限 ...
- div 自动高度
问题: 一个页面分上下二部分,上部分高度是固定不变的,要求下部分高度自动占满屏幕,如何实现? 第一感觉是准备用 JS 实现. 今天发现一个用 CSS 实现的方法 position: fixed; bo ...
- react组件传参记录,防止以后忘记,欢迎指正讨论
c: 'Celsius', f: 'Fahrenheit' }; function toCelsius(fahrenheit) { return (fahrenheit - 32) * 5 / 9; ...