어떻게 작성합니까 임의적입니까 int 번호?

C # 의 임의의 정수 어떻게 작성합니까?

해결책

'랜덤' 클래스 이 난수 생성하기 위해 사용된다. (즉 dtep 임의적입니까 물론이겠지).

예:

<! - 언어: c # - &gt.

Random rnd = new Random();
int month  = rnd.Next(1, 13);  // creates a number between 1 and 12
int dice   = rnd.Next(1, 7);   // creates a number between 1 and 6
int card   = rnd.Next(52);     // creates a number between 0 and 51

이 경우 두 개 이상 만들 것인가, '랜덤' 이 인스턴스입니다 및 재사용합니다 난수 유지해야 합니다. 너무 짧은 시간 내에 만들 경우, 그들은 새로운 인스턴스들도 닫으십시오 깔의 같은 일련의 임의적입니까 숫자로 임의적입니까 발생기입니다 는 시드 시스템에서 편리합니다.

해설 (7)

는 질문에 대한 대답은 아주 간단한 방법이지만 좀 복잡하다. 즉, 거의 모두가 사용할 수 있다 "고 밝혀 일부는 이미 제안됩니다 클래스를 사용하여 임의의 유사환 암호화 구분된다. 그런데 어떤 때 선택할 수 있습니다.

이를 위해 먼저 무작위성은 및 철학 용어 이해 해야 될 수 있다.

난 이 동영상을 통해 심도 있는 것을 볼 수 있습니다 (philosophy of c # 에 있는 댁이라면 무작위성은 [https://www.youtube.com/watch? v = 3fy 트시스크 2] [1]

먼저 하는 일은 잘 알려 무작위성은 철학. 빨강, 녹색, 노란색) 중에서 선택할 수 있는 사람은 알 때 우리는 무슨 일이 내부적으로. 사람이 어떨거라고 선택됨을 빨간색이나 노란색 또는 그린입니까?

! [c # 임의적입니까] [4]

그 선택이 될 수 있으며, 일부 초기 돌아보 댁이라면 꽂으십시오 결정하는 사람은 마음을 좋아하는 색이, 행운의 색상 및 드릴링됩니다. 즉, 임의의 점) 로 그 중 일부 초기 트리거할 용어로 시드스티스 촉발제였군 선동 선택할 수 있는 임의의 값이 그를 시드입니다 시작됩니다.

이 경우 해당 종류의 임의적입니까 번호는 이제 시드입니다 가늠하기는 쉽지 dtep 때 그 어려운 것 '이라고 tpc. 고정되었는지 및 시드입니다 무순서 번호는 난수) 이라고 한다.

예를 들어 한 선택했습니까 은 색상 및 사운드 조합으로의 날씨 따라 그 어렵다는 것 초기 시드입니다.

! [c # 임의적입니까] [2]

이제 할 수 있는 중요한 기술서임을 - let me

  • "Random" class 생성하는지 국한됨 dtep 난수 생성 및 안전한 난수 we need to use "네그크라이프트로저비스프로비더" class.

! [c # 임의적입니까] [3]

Class 는 임의의 값을 예측할 수 있는 시스템의 CPU 클럭 시드입니다 매우. 그래서 즉 임의적입니까 클래스 C # 생성하는지 dtep 난수, 다음은 코드의 마찬가지다.

  • 참고: * '.NET' 의 핵심 2.0.0+ 에서는 다른 시드입니다 파라메트리스 구성자를: cpu 클럭 기d.뉴기드 오가타시코드 () '대신' () 를 사용합니다.
var random = new Random();
int randomnumber = random.Next()

'클래스' OS 를 사용하는 동안 네그크라이프트로저비스프로비더 발령합니다 엔트로피가 생겼다. OS 는 임의의 값을 사용하여 생성할지 키보드 및 마우스 클릭, 엔트로피가 원하는거요 사운드, 타이밍, 열 임시 상술합니다. 댁이라면 대한 코드는 아래와 같습니다.

using (RNGCryptoServiceProvider rg = new RNGCryptoServiceProvider()) 
{ 
    byte[] rno = new byte[5];    
    rg.GetBytes(rno);    
    int randomvalue = BitConverter.ToInt32(rno, 0); 
}

이해할 수 있도록 OS 엔트로피가 지켜보리니 온 이 동영상을 14:30 [https://www.youtube.com/watch? v = 3fy 트시스크 2] [5] 여기서 로직 정보 엔트로피 (os) 는 설명했다. 그래서 간단히 나치도요 유사환 암호화 생성하는지 안전한 난수 있다.

[1]: https://www.youtube.com/watch? v = 3fy 트시스크 2

[5]: https://youtu.be/tCYxc-2-3fY? t = 14m31s

해설 (3)

할 때마다 새로운 임의적입니까 () 이 초기화되었습니다. 즉 동일한 값을 루프 확보하십시오 꽉 많은 시간. 단일 임의적입니까 인스턴스입니다 계속 유지해야 합니다 다음 사용하여 같은 컨트롤러상의 인스턴스입니다.

//Function to get random number
private static readonly Random getrandom = new Random();

public static int GetRandomNumber(int min, int max)
{
    lock(getrandom) // synchronize
    {
        return getrandom.Next(min, max);
    }
}
해설 (7)

새로운 것을 두려워 '시드 무순서 ()' 가 현재 시간스탬프와.

    • 생성하려면 단 1 개의 번호를 사용할 수 있습니다.

'새 임의적입니까 이네스트 (int, int. 맥스발루 민발루.)' ()

자세한 내용은 &lt 보면,,, a href = &quot http://msdn.microsoft.com/en-us/library/system.random.aspx&quot &gt Random&lt /a&gt. 클래스 표시되어도 참고:

&gt. 그러나 이 시계는 사용하여 만들 수 있기 때문에, 다른 임의 유한 해결안에서는 파라메트리스 구성자를 의 객체에는 닫으십시오 생산하는 동일해집니다 시퀀스에만 난수 생성 난수 생성기, 왕위 계승 순위

그래서 이 코드를 사용하지 않는 일련의 난수 생성.

해설 (3)
Random r = new Random();
int n = r.Next();
해설 (0)

내가 하고 싶은 추가하기에서는 암호학적으로 안전한 버전:

네그크라이프트로저비스프로비더 클래스 ([MSDN] [1] 또는 도네페얼스)

리디스포사블 구현합니다.

using (RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider())
{
   byte[] randomNumber = new byte[4];//4 for int32
   rng.GetBytes(randomNumber);
   int value = BitConverter.ToInt32(randomNumber, 0);
}

[1]: 이아스파스 https://msdn.microsoft.com/en-us/library/system.security.cryptography.rngcryptoserviceprovider (v = vs. 110)

해설 (0)

존 Skeet& # 39 의 스태틱랭동 방법을 사용할 수 있는 클래스 라이브러리 미스쿠틸 일곱방과 구축됨 kingdome. seattle. dtep 임의적입니까 번호입니다.

using MiscUtil;
...

for (int i = 0; i < 100; 
    Console.WriteLine(StaticRandom.Next());
해설 (4)

39 의 임의의 객체에는 시드입니다 it& 것이 현재의 밀리초입니다 (true random number, 거의 찾을 수 있도록 진실이며당신이 won& 사용해 여러 번 중복 t # 39.

Random rand = new Random(DateTime.Now.Millisecond);
  • 업데이트 *

내가 알고 있는 '새' 에서는 현재 진드기 무순서 () 로, 하지만 여전히 충분히 it& # 39 로 현재 밀리초입니다 시드입니다 시드, s 优秀 임의적입니까 시작

39 마지막 남은 점은 너회가 don& 없다 할 때마다 초기화하려면 무순서 () ',' 새 객체는 한 만큼 이를 사용하여, 임의의 난수를 이니시에이트할 있는모든 루프 또는 인사이드라면 합니다.

해설 (2)

39, ve 오토메이티드 제외한 모든 것을 이 솔루션을 i& 했다. lol

이 솔루션은 pokemonsilver. 충분하지 않습니다. 내가 필요한 불규칙적 빠르고 매우 넓은 범위의 값을 얻기 위해 int 는 루프 쉐퍼드도 톤의 복제본임을 있는 것이다. 그런 후 이 문제를 다루기 위해 그간 너무 멀리 긴 I once and for all 무순서 결과 최종 결정했다.

39 에 관한 모든 it& 시드입니다.

내가 사용하는 Guid 의 임의의 정수 만들기, 그럼 내 임의적입니까 인스턴스화합니다 비사양 자리 구문 분석 아웃해야 의해 구분된다.

public int GenerateRandom(int min, int max)
{
    var seed = Convert.ToInt32(Regex.Match(Guid.NewGuid().ToString(), @"\d+").Value);
    return new Random(seed).Next(min, max);
}
  • 업데이트 *: # 39, Random 클래스 한 번 시드 isn& 인스턴스화하지 경우 필요한 것이다. 그래서 it& 정적 클래스 및 매입옵션 메서드입니다 오프하도록; d # 39 만들 수 있는 최고의 것.
public static class IntUtil
{
   private static Random random;

   private static void Init()
   {
      if (random == null) random = new Random();
   }

   public static int Random(int min, int max)
   {
      Init();
      return random.Next(min, max);
   }
}

그 때문에 같은 정적 클래스 사용할 수 있습니다.

for(var i = 0; i < 1000; i++)
{
   int randomNumber = IntUtil.Random(1,100);
   Console.WriteLine(randomNumber); 
}

난 내가 맘에 드는 외곽진입 좋습니다.

해설 (6)

답을 수정되었음 [here] [1].

액세스하도록 경우 인텔 호환 CPU 안전한 난수 및 문장열 이러한 라이브러리를 사용하여 실제 키를 생성할 수 있습니다. https://github.com/JebteK/RdRandhttps://www.rdrand.com/

그냥 here 의 최신 버전을 다운로드하십시오 포함시키십시오 젭테k.드런드 및 추가하기에서는 기술서임을 사용하여 일이다. 그 후, all you need to do is this:

// Check to see if this is a compatible CPU
bool isAvailable = RdRandom.GeneratorAvailable();

// Generate 10 random characters
string key       = RdRandom.GenerateKey(10);

 // Generate 64 random characters, useful for API keys 
string apiKey    = RdRandom.GenerateAPIKey();

// Generate an array of 10 random bytes
byte[] b         = RdRandom.GenerateBytes(10);

// Generate a random unsigned int
uint i           = RdRandom.GenerateUnsignedInt();

39 don& 경우, restful 서비스를 사용할 수 있는 코드를 실행할 수 없는, 그냥 호환 cpu http://support. rdrand.com. 래퍼 라이브러리 르랭동 프로젝트에 포함된 것과 함께, 그냥 이렇게 해야 하는 (확보하십시오 1000년 무료 통화 가입 때):

string ret = Randomizer.GenerateKey(, "");
uint ret   = Randomizer.GenerateUInt("");
byte[] ret = Randomizer.GenerateBytes(, "");

[1]: # 22801467 https://stackoverflow.com/questions/1122483/random-string-generator-returning-same-string/22801467

해설 (1)

숫자는 '붙박이' 클래스 (시스템.랭동) 에 의해 생성되는 무순서 생성하는지 dtep 난수.

가장 가까운, 안전한 난수, 우리는 진정한 스케쳐내 안 &quot dtep 임의적입니까 Generator&quot. c # 의 사용하여 클래스를 생성할 수 있는 암호화 등 '네그크라이프트로저비스프로비더'.

그렇게 계속 필요한 경우 , 임의 소스 등 외부 장치를 사용해야 할 진정한 숫자를 차지할 경우 방사성 비호환성의 시드입니다 난수 발생기입니다. 이후, 정의에 의해 생성된 모든 숫자가 순수하게 알고리즘 고말은 就不可能拥有 정말 어렵네.

해설 (0)

아래 코드를 난수를 사용하고 있다.

var random = new Random((int)DateTime.Now.Ticks);
var randomValue = random.Next(startValue, endValue + 1);
해설 (0)

이것은 클래스 I 사용합니다. (1, 666) 'like' 랭동누마버지의트랭동 작동됨

internal static class RandomNumber
{
    private static Random r = new Random();
    private static object l = new object();
    private static Random globalRandom = new Random();
    [ThreadStatic]
    private static Random localRandom;
    public static int GenerateNewRandom(int min, int max)
    {
        return new Random().Next(min, max);
    }
    public static int GenerateLockedRandom(int min, int max)
    {
        int result;
        lock (RandomNumber.l)
        {
            result = RandomNumber.r.Next(min, max);
        }
        return result;
    }
    public static int GenerateRandom(int min, int max)
    {
        Random random = RandomNumber.localRandom;
        if (random == null)
        {
            int seed;
            lock (RandomNumber.globalRandom)
            {
                seed = RandomNumber.globalRandom.Next();
            }
            random = (RandomNumber.localRandom = new Random(seed));
        }
        return random.Next(min, max);
    }
}
해설 (1)
Random random = new Random ();
int randomNumber = random.Next (lowerBound,upperBound);
해설 (1)

동시에 이는 그땅은:

Random random = new Random();
int randomNumber = random.Next()

39; d you& 제한 (분 / 최대 멈버스) 이 기간 중 대부분을 통제하고 싶어한다. 그래서 있는 난수 시작되고 끝나는 지정해야 합니다.

'다음 ()' 이 메서드는 막스야) 과 두 개의 매개 변수

만일 내가 원하는 건 내 난수 스크램블된 I& # 39 라고 사이에 5, 15 개, just do; d

int randomNumber = random.Next(5, 16)
해설 (0)

난 항상 flfile. 크리ptorng 대한 강력한 임의적입니까 시드입니다 아닌 하게하면서요.

using System;
using System.Security.Cryptography;

public class Program
{
    public static void Main()
    {
        var random = new Random(GetSeed());
        Console.WriteLine(random.Next());
    }

    public static int GetSeed() 
    {
        using (var rng = new RNGCryptoServiceProvider())
        {
            var intBytes = new byte[4];
            rng.GetBytes(intBytes);
            return BitConverter.ToInt32(intBytes, 0);
        }
    }
}
해설 (0)

결정주의 프로세스를 통해 숫자임 계산됩니까 컴퓨터에 의해 기본적으로 무순서 수 없습니다.

진정한 난수 잡음 또는 무작위성은 스케쳐내 가져온 이 대기 분포를 영상화한다.

예를 들어 볼 수 있습니다 (이를 통해 성능) RANDOM.ORG

해설 (0)

매번 새로운 임의적입니까 발생기입니다 사용할 때 일어나는 제시하십시오 싶었다. 각 클래스 또는 두 난수를 필요로 하는 두 가지 방법이 있다고 가정합니다. 그리고 그 소박하게 다음과 같은 코드를 있습니다

public class A
{
    public A()
    {
        var rnd=new Random();
        ID=rnd.Next();
    }
    public int ID { get; private set; }
}
public class B
{
    public B()
    {
        var rnd=new Random();
        ID=rnd.Next();
    }
    public int ID { get; private set; }
}

서로 다른 두 개의 id 를 얻을 수 있을까요? 없엉

class Program
{
    static void Main(string[] args)
    {
        A a=new A();
        B b=new B();

        int ida=a.ID, idb=b.ID;
        // ida = 1452879101
        // idb = 1452879101
    }
}

해결 방법은 always 사용하여 하나의 정적인 임의적입니까 발생기입니다. 다음과 같습니다.

public static class Utils
{
    public static readonly Random random=new Random();
}

public class A
{
    public A()
    {
        ID=Utils.random.Next();
    }
    public int ID { get; private set; }
}
public class B
{
    public B()
    {
        ID=Utils.random.Next();
    }
    public int ID { get; private set; }
}
해설 (4)

다음 코드는 랜덤 되돌려줍니다 number.& # 160;

int num = random.Next(); 

다음 코드는 난수를 되돌려줍니다 미만임 1000년 .& # 160;

int num = random.Next(1000);

다음 코드는 난수를 되돌려줍니다) 과 사이에 최대 약점이다.

# # # 160;;; random& generate& a& # 160; 160 number& between& two& # 160; 160 160, 번호:

public int RandomNumber(int min, int max)  

 { 

& # 160; & # 160; & # 160; & # 160;

Random random = new Random(); 

return random.Next(min, max);  

}

& # 160; & # 160;

해설 (0)
Random rand = new Random();
int name = rand.Next()

원하는 값을 있는모든 동일팔레트에 두 번째 괄호 smartupdate 이름을 써서 설정한 탭 연산뿐 제안 및 코드 작성

해설 (3)