একটি এলোমেলো বুলিয়ান মান ফেরত দেওয়ার সেরা উপায়


103

আমি ফিরে আসার জন্য trueবা falseজাল বীজ ডেটা তৈরি করার সময় এটি ব্যবহার করে আসছি কিছুক্ষণ । কারও কাছে যদি হয় trueবা ফিরে যাওয়ার আরও ভাল, আরও সংক্ষিপ্ত বা ভার্বোজ উপায় আছে তা অবাক করেই ভাবছি false

rand(2) == 1 ? true : false

5
@ অ'র উত্তর অনুসারে, আপনি কি বুঝতে পেরেছেন যে rand(2)==1ইতিমধ্যে একটি বুলিয়ান মান?
ফ্রোগজ

উত্তর:


245

অ্যারে # নমুনা ব্যবহার করে একটি ঘোষণামূলক স্নিপেট :

random_boolean = [true, false].sample

অভি, আমি পুরোপুরি ভুলে গেছি আমি এই প্রশ্নটি পোস্ট করেছি। উত্তর-উত্তর দেওয়ার জন্য অনেক ধন্যবাদ!
চক বার্গারন

4
[true, false].sampleতুলনায় দ্রুতrand(2) == 1 । যখন আমি প্রতিটি অপারেশন সম্পাদনা 10 মিলিয়ন বারrand পদ্ধতি 2.179s ছিল। sampleপদ্ধতি 1.645s ছিল।
মিরর 318

[সত্য, মিথ্যা]। নমুনা র‌্যান্ডের চেয়ে দ্রুত নয়> 0.5
ইভান ক্যাস্তেলানানোস

36

টার্নারি অপারেটর অপসারণ সম্পর্কে কীভাবে।

rand(2) == 1

2
এটি আরও কমপ্যাক্ট, তবে আমি আরও [true, false].sampleভাল পছন্দ করি কারণ এটি যা তা তাত্ক্ষণিকভাবে স্পষ্ট। rand(2) == 1রুবির সাথে কাজ করবে <1.9 যদিও, এটি ভাল।
অটোমেটিকো

2
যেহেতু কেবলমাত্র আছে 0এবং তাই 1আপনি ব্যবহার করতেও পারেনrand(2).zero?
স্টেফান

15

আমি ব্যবহার করতে চাই rand:

rand < 0.5

সম্পাদনা : এই উত্তরটি পড়তে ব্যবহৃত হয়েছিল rand > 0.5তবে rand < 0.5প্রযুক্তিগতভাবে আরও সঠিক। randএকটি ফলাফল দেখায় অর্ধ খোলা পরিসর [0,1), ব্যবহার, যাতে <অর্ধ খোলা রেঞ্জ [0,0.5) এবং [0.5,1) এর সমান মতভেদ বাড়ে। ব্যবহার >বদ্ধ পরিসর [0,0.5] এবং খোলা পরিসীমা (.5,1) এর অসম মতভেদ হতে হবে।


4
এটি নিখুঁত। নমুনা পদ্ধতিটি (তত্ত্ব অনুসারে) একটি 50% সম্ভাবনা তৈরি করে তবে এটির সাহায্যে আপনি সেই সম্ভাবনাটি সামঞ্জস্য করতে পারেন। বলুন, আমি একটি সত্য মূল্য পাওয়ার 70% সুযোগ চাইrand > 0.3
জুলিয়ানগনজালেজ

4
: @JGonzalezD এবং এটা আরো সহজবোধ্য এবং পাঠযোগ্য করতে rand < 0.7জন্য 70%
টিঅ্যান্ডটি

4

আমি সাধারণত এই জাতীয় কিছু ব্যবহার করি:

rand(2) > 0

আপনি টু_বুলিয়ান পদ্ধতি তৈরি করতে পূর্ণসংখ্যাটি প্রসারিত করতে পারেন:

class Integer
  def to_boolean
    !self.zero?
  end
end

রুবিতে, শুধুমাত্র মিথ্যা এবং শূন্য মিথ্যা, আমি দৃ strongly়ভাবে এই ধরণের আচরণকে বানকিপ্যাচ না করার জন্য দৃ rec়ভাবে দাবি করছি।
হাবাক্স

আরও ভাল,rand(2).zero?
জেসি নভটনি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.