루비 난수

Zeeshan Afridi 2023년6월21일
  1. Ruby에서 난수 만들기
  2. rand()를 사용하여 Ruby에서 난수 생성
  3. Kernel#srand를 사용하여 난수 생성기 시드
  4. Ruby에서 임의의 문자열 만들기
  5. 결론
루비 난수

이 기사에서는 Ruby에서 난수를 생성하는 방법을 설명합니다.

Ruby에서 난수 만들기

Ruby에서 난수를 생성하는 몇 가지 방법이 있습니다.

  1. rand() 메서드 사용.
  2. Kernel#srand 방법은 난수 생성기를 시드하는 데 사용됩니다.

rand() 메서드는 01 사이의 임의 부동 소수점을 생성합니다. 이것은 시뮬레이션이나 게임을 위한 난수를 생성하는 데 유용할 수 있습니다.

rand() 메서드는 무작위 정수를 생성하기 위해 floor 메서드와 함께 사용됩니다. 이것은 0과 floor 메서드에 전달된 숫자 사이의 임의의 정수를 반환합니다.

예를 들어 아래 코드 스니펫은 010 사이의 임의의 정수를 생성합니다.

rand(10).floor

마지막으로 srand() 메서드를 사용하여 난수 생성기를 시드할 수 있습니다. 이는 프로그램을 여러 번 실행하여 정확한 난수 시퀀스를 개발하려는 경우에 유용합니다.

rand()를 사용하여 Ruby에서 난수 생성

rand() 메서드는 프로그래밍에서 난수를 생성하는 데 널리 사용되는 방법입니다. 알고리즘을 사용하여 0과 1 사이의 의사 난수를 생성하는 간단한 방법입니다.

그런 다음 이 숫자에 원하는 범위를 곱하고 가장 가까운 정수로 반올림하여 최종 결과를 얻습니다.

rand() 메서드는 현실적이고 예측할 수 없는 환경을 만들기 위해 게임 및 시뮬레이션에서 자주 사용됩니다. 또한 통계 샘플링 및 데이터 분석에도 사용됩니다.

010 사이의 임의의 숫자를 만들고 싶다면 다음과 같이 rand 방법을 사용할 수 있습니다.

코드 예:

rand(10)
puts rand(10)

출력:

5

다음 예제는 rand() 메소드를 사용하여 1에서 10 사이의 난수를 생성합니다.

코드 예:

rand(1..10)
puts rand(1..10)

출력:

6

Kernel#srand를 사용하여 난수 생성기 시드

또한 Kernel#srand 방법을 사용하여 난수 생성기를 시드하여 생성된 난수를 더 잘 제어할 수 있습니다. 시드와 함께 호출하면 Kernel#srand 메서드는 난수 생성기를 시드하여 반복 가능한 난수 시퀀스를 생성할 수 있습니다.

시드가 제공되지 않으면 시간, 프로세스 ID 및 시퀀스 번호의 조합으로 생성기가 시드됩니다. 동일한 시드로 Kernel#srand를 호출하면 항상 동일한 순서의 난수가 생성됩니다.

이는 디버깅 또는 결정적 시뮬레이션 생성에 유용할 수 있습니다. 그러나 프로덕션 환경에서 동일한 시드를 사용하는 것은 일반적으로 좋지 않습니다. 애플리케이션을 보다 예측 가능하고 악용하기 쉽게 만들 수 있기 때문입니다.

반복 가능한 난수 시퀀스를 생성해야 하는 경우 일반적으로 Mersenne Twister와 같은 전용 API를 제공하는 라이브러리를 사용하는 것이 좋습니다.

코드 예:

puts srand 1234
puts [rand, rand]

puts [rand(10), and(1000)]

puts srand 1234
puts [rand, rand]

출력:

68269704279078804018695389408585286811
0.1915194503788923
0.6221087710398319
4
1000
1234
0.1915194503788923
0.6221087710398319

Ruby에서 임의의 문자열 만들기

Ruby에서 임의의 문자열을 생성하는 몇 가지 방법이 있습니다. 한 가지 방법은 Array.sample 방법을 사용하는 것입니다.

이 메서드는 배열에서 임의의 요소를 선택합니다.

코드 예:

arr = ['a', 'b', 'c', 'd', 'e']
arr.sample
puts arr.sample

출력:

c

임의 문자열을 생성하는 또 다른 방법은 SecureRandom.hex 메서드를 사용하는 것입니다. 이렇게 하면 16진수 문자의 임의 문자열이 생성됩니다.

코드 예:

require 'securerandom'
inp=SecureRandom.hex(10)
puts inp

출력:

e30c8046b7fac0627436

SecureRandom#base64 메서드를 사용하여 base64 문자의 임의 문자열을 생성할 수도 있습니다.

코드 예:

require 'securerandom'
inp=SecureRandom.base64(10)
puts inp

출력:

kc8/UBu0aFA8eg==

특정 길이의 임의 문자열이 필요한 경우 SecureRandom#random_bytes 방법을 사용할 수 있습니다. 그러면 임의의 바이트 문자열이 생성됩니다.

require 'securerandom'
inp=SecureRandom.random_bytes(10)
puts inp

출력:

�gՙP0�n[

마지막으로 임의의 영숫자 문자열이 필요한 경우 SecureRandom#urlsafe_base64 메서드를 사용할 수 있습니다.

코드 예:

require 'securerandom'
inp=SecureRandom.urlsafe_base64(10)
puts inp

출력:

ce6gAf9EyVdPMA

결론

이 기사는 rand가 Ruby 프로그램에서 난수를 생성하는 데 유용할 수 있다는 결론을 내립니다. 이 메서드는 생성할 수 있는 숫자 범위의 상한인 선택적 인수를 사용합니다.

또 다른 방법은 난수 생성기를 시드하는 Kernel#srand입니다. Ruby 언어로 임의 문자열을 생성할 수도 있습니다.

Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn