상세 컨텐츠

본문 제목

[C#] 난수, Random 관련

본문

반응형

 

 

 

 

=================================

=================================

=================================

 

 

 

출처: https://076923.github.io/posts/C-27/

 

난수 (Random)


특정한 순서나 규칙을 가지지 않은 무작위의 숫자를 발생시키는 함수입니다. 임의의 숫자 확률이 필요한 알고리즘이나 코드에 사용합니다.

 

Next()


Random rand = new Random(); int number = rand.Next(); textBox1.Text = Convert.ToString(number);

Random rand = new Random();의 생성자를 통하여 난수를 발생시킬 수 있습니다.

rand.Next()를 이용하여 음수가 아닌 임의의 정수를 반환합니다.

 

Next(n)


Random rand = new Random(); int number = rand.Next(10); textBox1.Text = Convert.ToString(number);

rand.Next(n)을 이용하여 n보다 작은 음수가 아닌 임의의 정수를 반환합니다.

  • Tip : 0~n-1 사이의 값을 반환합니다.

 

Next(n, m)


Random rand = new Random(); int number = rand.Next(6, 12); textBox1.Text = Convert.ToString(number);

rand.Next(n, m)을 이용하여 n보다 같거나 크며 m보다 작은 음수가 아닌 임의의 정수를 반환합니다.

  • Tip : n~m-1 사이의 값을 반환합니다.

 

NextDouble()


Random rand = new Random(); double number = rand.NextDouble(); textBox1.Text = Convert.ToString(number);

rand.NextDouble()을 이용하여 0.0과 1.0사이의 임의의 부동 소수점 난수를 반환합니다.

 

NextBytes(array)


Random rand = new Random(); Byte[] array = new Byte[10]; rand.NextBytes(array); for(int i=0; i<10; i++) { textBox1.Text += Convert.ToString(i+1 + "회 : " + array[i] + Environment.NewLine); }

 

 

rand.NextBytes(array)을 이용하여 byte형식의 배열에 난수를 채웁니다.

  • Tip : Textbox 또한 += 연산이 가능하여 누적적으로 입력이 가능합니다.
  • Tip : Environment.NewLine는 Textbox의 줄 바꿈 명령어입니다.

 

 

 

=================================

=================================

=================================

 

 

 

출처: https://orthogonal.tistory.com/entry/C%EC%97%90%EC%84%9C-random-%ED%95%A8%EC%88%98-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0

 

부서에서 볼링을 치러간다고 한다.

타이틀없이 볼링만 치면 재미가 없으니까 랜덤하게 만들어진 수에

가장 근접한 사람에게 상품을 수여하기로 했다.

괜찮은 아이폰 어플이 있나 찾아봤는데 없어서

간단하게 콘솔 프로젝트로 50에서 150 사이의 난수를 생성하는 프로그램을 만들었다.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace random_digit
{
    class Program
    {
        static void Main(string[] args)
        {
            Random r = new Random();

            int winning_number =  r.Next(50, 150);

            Console.WriteLine("50부터 150 사이의 랜덤한 숫자를 만듭니다.");
            Console.Write("엔터키를 눌러주세요.");
            Console.Read();
            Console.WriteLine("계산 중입니다.");

            for (int i = 0; i < 80; i++)
            {
                Console.Write(".");
                System.Threading.Thread.Sleep(100);
            }

            Console.WriteLine();
            Console.WriteLine(winning_number);
            Console.WriteLine("축하합니다!");
        }
    }
}

C#에서 랜덤함수를 사용하기 위해서는 Random 객체를 생성한 후 만들어야하고
Next(int min, int max) 멤버함수를 이용해서 난수의 최소값과 최대값을 지정할 수 있다.

극적인 효과를 주기위해서 Sleep() 함수를 사용했는데
C#에서 Sleep() 함수를 사용하기 위해서는
System.Threading.Thread.Sleep(100);
이렇게 작성해주어야한다.



출처: https://orthogonal.tistory.com/entry/C에서-random-함수-사용하기 [orthogonal]

 

 

 

 

=================================

=================================

=================================

 

 

 

출처: https://parkhomeorg.tistory.com/6

 

C# 에서 Random 클래스 사용하기

C언어에서는 random() 함수가 생성하는 값의 중복을 막기위해

srand() 함수를 사용하였다.

그러나 C#에서는 srand함수를 사용할 필요가 없다.

// Radom class:

Random r = new Random();

// Methods:

r.Next();                             // 랜덤값 생성

r.Next(Int32 min, Int32 max);  // 최소 min 값 부터 최대 max - 1 까지


예) 1 에서 부터 100중에 랜덤 값을 10개 출력

   int i;
   Random r = new Random();
  
   for (i = 0; i < 10; i++)
   {
        Console.WriteLine("{0} = {1}", i + 1, r.Next(1, 100));
   }



결과: (프로그램을 수행할 때 마다 결과는 변경됩니다.)

1 = 9
2 = 94
3 = 11
4 = 62
5 = 64
6 = 82
7 = 75
8 = 11
9 = 53
10 = 57
계속하려면 아무 키나 누르십시오 . . 

2009/12/21 12:17 
Rev 1.0



출처: https://parkhomeorg.tistory.com/6 [ParkHome.org]

 

 

 

=================================

=================================

=================================

 

 

 

반응형


관련글 더보기

댓글 영역