查看: 2839|回复: 4

[脚本] int类型数组中产生不重复的值(不重复随机数数组) c#

[复制链接]

109

主题

56

听众

923

积分

Rank: 3Rank: 3

升级   28.2%

发表于 2013-3-13 15:36 |显示全部楼层
共享资源获取更多积分!share your resources get more credits!
本帖最后由 monery8 于 2013-3-13 15:37 编辑


1、C# 如何产生100以内不重复的随机数
可以考虑先把这100个数放在一个数组内,每次随机取一个位置(第一次是1-100,第二次是1-99,...),将该位置的数与最后一个位置的数对调就可以了。

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;

  4. namespace ConsoleApplication1
  5. {
  6. class Program
  7. {
  8. static void Main(string[] args)
  9. {
  10. int [] arr=new int[101];
  11. int i;
  12. //初始化数组
  13. for(i=1;i<=100;i++)
  14. {
  15. arr<i> = i;
  16. }
  17. //随机数
  18. Random r = new Random();
  19. for (int j = 100; j >= 1; j--)
  20. {
  21. int address = r.Next(1,j);
  22. int tmp = arr[address];
  23. arr[address] = arr[j];
  24. arr[j] = tmp;
  25. }
  26. //输出
  27. foreach (int k in arr)
  28. {
  29. Console.Write(k+" ");
  30. }
  31. }
  32. }
  33. }</i>
复制代码

2、C#生成不重复随机数

  1. /// <summary>
  2.   /// 功能描述:返回不重复随机数数组
  3.    /// </summary>
  4.   /// <param name="Num">随机数个数</param>
  5.   /// <param name="minNum">随机数下限</param>
  6.   /// <param name="maxNum">随机数上限</param>
  7.   /// <returns></returns>
  8.   public int[] GetRandomArray(int Number,int minNum,int maxNum)
  9.   {
  10.    int j;
  11.    int[] b=new int[Number];
  12.    Random r=new Random();
  13.    for(j=0;j<Number;j++)
  14.    {
  15.     int i=r.Next(minNum,maxNum);
  16.     int num=0;
  17.     for(int k=0;k<j;k++)
  18.     {
  19.      if(b[k]==i)
  20.      {
  21.       num=num+1;
  22.      }
  23.     }
  24.     if(num==0 )
  25.     {
  26.      b[j]=i;
  27.     }
  28.     else
  29.     {
  30.      j=j-1;
  31.     }
  32.    }
  33.    return b;
  34.   }
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

楼主热帖
福利来了   http://v.youku.com/v_show/id_XNTA3NTg2MDI0.html    你懂得

0

主题

23

听众

206

积分

Rank: 2

升级   2%

发表于 2013-3-14 14:49 |显示全部楼层

感谢楼主的无私分享!
回复

使用道具 举报

0

主题

23

听众

201

积分

Rank: 2

升级   0.33%

发表于 2013-3-15 16:33 |显示全部楼层
好强的逻辑,最怕这个了
回复

使用道具 举报

6

主题

11

听众

201

积分

Rank: 2

升级   0.33%

发表于 2013-4-1 10:01 |显示全部楼层
和洗牌算法一样
回复

使用道具 举报

0

主题

23

听众

204

积分

Rank: 2

升级   1.33%

发表于 2013-4-26 21:26 |显示全部楼层
就是乱序算法
回复

使用道具 举报

0

主题

23

听众

204

积分

Rank: 2

升级   1.33%

发表于 2017-3-20 07:58 |显示全部楼层
很不错
回复

使用道具 举报

0

主题

23

听众

204

积分

Rank: 2

升级   1.33%

发表于 2017-3-20 07:03 |显示全部楼层
顶顶多好
回复

使用道具 举报

0

主题

23

听众

202

积分

Rank: 2

升级   0.67%

发表于 2017-3-20 07:50 |显示全部楼层
真心顶
回复

使用道具 举报

0

主题

23

听众

204

积分

Rank: 2

升级   1.33%

发表于 2017-3-20 07:48 |显示全部楼层
不错不错
回复

使用道具 举报

0

主题

23

听众

203

积分

Rank: 2

升级   1%

发表于 2017-3-20 07:34 |显示全部楼层
LZ真是人才
回复

使用道具 举报

温馨提示:求助请到“Unity技术讨论”版块中发帖,便于集中解决!
您需要登录后才可以回帖 登录 | 立即注册

懒人模式:

关闭

站长推荐 上一条 /1 下一条

Unity3D游戏开发联盟(资源共享平台) -Unity3D,Unreal ( 粤ICP备20003399号-2 )   

GMT+8, 2020-2-25 18:29 , Processed in 0.089655 second(s), 43 queries .