Лучший способ вернуть случайное логическое значение

Я использовал это в течение некоторого времени, чтобы вернуть true или false при создании поддельных данных семян. Просто интересно, есть ли у кого-нибудь лучший, более краткий или верный способ возврата либо true, либо false.

rand(2) == 1 ? true : false

Ответ 1

Декларативный фрагмент с использованием Пример массива #:

random_boolean = [true, false].sample

Ответ 2

Как насчет удаления тернарного оператора.

rand(2) == 1

Ответ 3

Мне нравится использовать rand:

rand < 0.5

Изменить. Этот ответ используется для чтения rand > 0.5, но rand < 0.5 более технически корректен. rand возвращает результат в полуоткрытый диапазон [0,1], поэтому использование < приводит к равным коэффициентам полу- открытые диапазоны [0,0,5) и [0,5,1). Использование > приведет к UNEQUAL шансам замкнутого диапазона [0,0.5] и открытого диапазона (.5,1).

Ответ 4

Я обычно использую что-то вроде этого:

rand(2) > 0

Вы также можете расширить Integer для создания метода to_boolean:

class Integer
  def to_boolean
    !self.zero?
  end
end