배열에서 무작위로 어떻게 선택합니까?
이 작업을 수행하는 훨씬 더 깨끗한 방법이 있는지 알고 싶습니다. 기본적으로 가변 길이 배열에서 임의의 요소를 선택하고 싶습니다. 일반적으로 다음과 같이합니다.
myArray = ["stuff", "widget", "ruby", "goodies", "java", "emerald", "etc" ]
item = myArray[rand(myarray.length)]
두 번째 줄을 대체하기가 더 읽기 쉽고 더 쉬운 것이 있습니까? 아니면 최선의 방법입니다. 나는 당신이 할 수 있다고 가정 myArray.shuffle.first
하지만 #shuffle
, 몇 분 전만 보았 으므로 실제로는 사용하지 않았습니다.
그냥 사용하십시오 Array#sample
:
[:foo, :bar].sample # => :foo, or :bar :-)
Ruby 1.9.1 이상에서 사용할 수 있습니다. 또한 이전 버전의 Ruby에서 사용할 수 있도록 할 수 require "backports/1.9.1/array/sample"
있습니다.
Ruby 1.8.7에서는 불행한 이름으로 존재합니다 choice
. 이후 버전에서는 이름이 바뀌 었으므로 사용해서는 안됩니다.
이 경우에는 유용하지 않지만 sample
여러 개의 고유 한 샘플을 원할 경우 숫자 인수를 허용합니다.
myArray.sample(x)
또한 배열에서 x 임의의 요소를 얻는 데 도움이 될 수 있습니다.
배열에서 난수의 난수
def random_items(array)
array.sample(1 + rand(array.count))
end
가능한 결과의 예 :
my_array = ["one", "two", "three"]
my_array.sample(1 + rand(my_array.count))
=> ["two", "three"]
=> ["one", "three", "two"]
=> ["two"]
myArray.sample
1의 임의의 값을 반환합니다.
myArray.shuffle.first
또한 1의 임의의 값을 반환합니다.
arr = [1,9,5,2,4,9,5,8,7,9,0,8,2,7,5,8,0,2,9]
arr[rand(arr.count)]
이것은 배열에서 임의의 요소를 반환합니다.
아래 언급 된 줄을 사용한다면
arr[1+rand(arr.count)]
어떤 경우에는 0 또는 nil 값을 반환합니다.
아래 언급 된 줄
rand(number)
항상 0에서 1까지의 값을 반환하십시오.
우리가 사용한다면
1+rand(number)
그러면 숫자를 반환하고 arr [number]에는 요소가 없습니다.
class String
def black
return "\e[30m#{self}\e[0m"
end
def red
return "\e[31m#{self}\e[0m"
end
def light_green
return "\e[32m#{self}\e[0m"
end
def purple
return "\e[35m#{self}\e[0m"
end
def blue_dark
return "\e[34m#{self}\e[0m"
end
def blue_light
return "\e[36m#{self}\e[0m"
end
def white
return "\e[37m#{self}\e[0m"
end
def randColor
array_color = [
"\e[30m#{self}\e[0m",
"\e[31m#{self}\e[0m",
"\e[32m#{self}\e[0m",
"\e[35m#{self}\e[0m",
"\e[34m#{self}\e[0m",
"\e[36m#{self}\e[0m",
"\e[37m#{self}\e[0m" ]
return array_color[rand(0..array_color.size)]
end
end
puts "black".black
puts "red".red
puts "light_green".light_green
puts "purple".purple
puts "dark blue".blue_dark
puts "light blue".blue_light
puts "white".white
puts "random color".randColor
참고 URL : https://stackoverflow.com/questions/3482149/how-do-i-pick-randomly-from-an-array
'Programing' 카테고리의 다른 글
Git 리포지토리에서 디렉토리의 이름을 올바르게 바꾸는 방법은 무엇입니까? (0) | 2020.02.10 |
---|---|
switch 문의 여러 사례 (0) | 2020.02.10 |
Redis를 사용하여 패턴과 일치하는 키를 원자 적으로 삭제하는 방법 (0) | 2020.02.10 |
PHP로 예쁘게 인쇄하는 JSON (0) | 2020.02.10 |
버전 제어에서 IPython 노트북 사용 (0) | 2020.02.10 |