C# 반복되지 않는 임의 수를 생성하는 두 함수
3363 단어 무작위 수
using System;
using System.Collections.Generic;
using System.Text;
using System.Collections;
namespace N
{
class Program
{
static void Main(string[] args)
{
DateTime d1 = System.DateTime.Now;
int[] list1 = GetRandom1(1, 100000, 5000);
TimeSpan dd1 = System.DateTime.Now - d1;
DateTime d2 = System.DateTime.Now;
int[] list2 = GetRandom2(1, 100000*100, 5000);
TimeSpan dd2 = System.DateTime.Now - d2;
//foreach (int i in list1)
// Console.Write("{0},", i);
//foreach (int ii in list2)
// Console.Write("{0},", ii);
Console.WriteLine(" ,1-100000 5000 :{0}", dd1.TotalMilliseconds);
Console.WriteLine(" ,1-100000*100 5000 :{0}", dd2.TotalMilliseconds);
Console.WriteLine(" , 5000 :{0}",RemoveDup(list2).Length);
Console.ReadKey();
}
public static int[] RemoveDup(int[] myData)
{
if (myData.Length > 0)
{
Array.Sort(myData);
int size = 1;
for (int i = 1; i < myData.Length; i++)
if (myData[i] != myData[i - 1])
size++;
int[] myTempData = new int[size];
int j = 0;
myTempData[j++] = myData[0];
for (int i = 1; i < myData.Length; i++)
if (myData[i] != myData[i - 1])
myTempData[j++] = myData[i];
return myTempData;
}
return myData;
}
// 1
public static int[] GetRandom1(int minValue, int maxValue, int count)
{
Random rnd = new Random();
int length = maxValue - minValue + 1;
byte[] keys = new byte[length];
rnd.NextBytes(keys);
int[] items = new int[length];
for (int i = 0; i < length; i++)
{
items[i] = i + minValue;
}
Array.Sort(keys, items);
int[] result = new int[count];
Array.Copy(items, result, count);
return result;
}
// 2
public static int[] GetRandom2(int minValue, int maxValue, int count)
{
int[] intList = new int[maxValue];
for (int i = 0; i < maxValue; i++)
{
intList[i] = i + minValue;
}
int[] intRet = new int[count];
int n = maxValue;
Random rand = new Random();
for (int i = 0; i < count; i++)
{
int index = rand.Next(0, n);
intRet[i] = intList[index];
intList[index] = intList[--n];
}
return intRet;
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Ruby 랜덤 수 생성 방법 요약인류 관찰자에게 있어서 이 숫자들은 확실히 무작위적이다.짧은 반복 서열은 없을 뿐만 아니라, 적어도 인류 관찰자들에게는 완전히 무작위적이다.그러나 충분한 시간과 동기가 있으면 원시 피드를 발견하고 서열을 다시 만들고...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.