c\#순환 중 위조 난수 발생

2041 단어 의사 난수
이러한 결 과 는 랜 덤(Random)함수 의 기본 피 드 는 시간 이지 만 순환 중 난수 가 발생 할 때 연산 속도 가 너무 빨 라 피 드 를 만 드 는 시간 이 같 기 때문에 발생 하 는 난수 서열 이 같 아서 최종 난수 가 같 기 때문이다.('선형 동 여 법'을 바탕 으로 하 는 난수 발생 기)해결 방법 은 전체 국면 에서 유일한 식별 자 를 만 들 고 그의 해시 값 을 사용 하여 피 드 에 임 의 수 를 만 드 는 것 이다.코드 는 다음 과 같 습 니 다.
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Cryptography;
namespace Calculation
{
public static class RandomStatic
{
// [0,1)
public static double ProduceDblRandom()
{
Random r = new Random(Guid.NewGuid().GetHashCode());// Guid
return r.NextDouble();
}
//
public static int ProduceIntRandom(int minValue, int maxValue)
{
Random r = new Random(Guid.NewGuid().GetHashCode());
return r.Next(minValue, maxValue + 1);
}
}
}
이렇게 순환 에서 임 의 수 를 만 들 면 임 의 성 을 대체적으로 보장 할 수 있 습 니 다.이 정적 인 코드 를 사용 하면 다음 과 같 습 니 다.
 
//
private void button1_Click_1(object sender, EventArgs e)
{
for (int i = 0; i < 100; i++)
{
Console.WriteLine(RandomStatic.ProduceIntRandom(0,100));
}
}
//
private void button2_Click_1(object sender, EventArgs e)
{
Random r = new Random();
for (int i = 0; i < 100; i++)
{
Console.WriteLine(r.Next(0,100));
}
}
상기 코드 중의 첫 번 째 순환 은 0-100 에 있 는 임 의 수 를 100 개 만 들 수 있 고 두 번 째 순환 은 기본 적 인 시간 피 드 를 사용 하기 때문에 이 순환 에서발생 하 는 난수 서열 은 현저 한 연관 성 을 가지 기 때문에 두 순환 에서 발생 하 는 난수 서열 을 엑셀 에 놓 고 산 점 도 를 만 들 수 있 고 결 과 는 한눈 에 알 수 있다.사진 을 올 리 려 고 했 는데 csdn 은 지금 사진 을 올 릴 수 없 을 것 같 습 니 다.첫 번 째 순환 결과3 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43 43

좋은 웹페이지 즐겨찾기