1 / এন সম্ভাবনা


29

কারণ পর্যাপ্ত সরল চ্যালেঞ্জ নেই:

একটি বিকল্পভাবে নামবিহীন প্রোগ্রাম তৈরি করুন বা ফাংশন তৈরি করুন যা (যে কোনও উপায়ে) একটি পূর্ণসংখ্যা 1 ≤ N ≤ 10000 প্রদান করে, আপনার ভাষার সত্য মান 1 / N এর সিউডো-এলোমেলো সম্ভাবনা দিয়ে দেয়, অন্যথায় মিথ্যা।

দয়া করে নোট করুন যে নামকরণের প্রয়োজনীয়তা অপসারণ করা হয়েছে। উত্তর এবং স্কোর অনুসারে নির্দ্বিধায় দ্বিধা করুন।

কিছু ভাষা সত্য এবং মিথ্যা জন্য 1 (বা -1) এবং 0 ব্যবহার করে, এটিও ঠিক আছে।

উদাহরণ:

ইনপুট পরীক্ষার উদাহরণ:

4 -> True
4 -> False
4 -> False
4 -> False
4 -> False
4 -> True
4 -> False
4 -> False

অর্থাৎ প্রদত্ত 4; এটি 25% সুযোগের সাথে সত্য এবং 75% সুযোগের সাথে মিথ্যা প্রদান করে।




সমস্ত ভাষা "সিউডোর্যান্ডমনেস" তেমন নির্মিত না হয়ে দ্বিতীয় যুক্তি হিসাবে বীজ পাওয়া কি সম্ভব? (উদাঃ ব্রেইনফাক)
22:55

@ ফ্লোয়ার বর্তমান মিলিসেকেন্ডটি ব্যবহার করুন ...
অ্যাডম

1
Nআমাদের গ্রহণযোগ্য বৃহত্তম কি ?
টবি স্পিড

উত্তর:


27

পার্সারফিউশনস , 48 বাইট সহ মিডিয়াউইকি টেম্পলেটগুলি

{{#ifexpr:1>{{#time:U}} mod {{{n}}}|true|false}}

13
ভাষার আকর্ষণীয় পছন্দ :-)
অ্যাডম

6
কে হ্যাক ভেবেছিলেন মিডিয়াউইকি টেমপ্লেটগুলিতে অ-নিরস্তাত্মক ক্রিয়াকলাপ যুক্ত করা বুদ্ধিমান হবে !?
ব্যবহারকারী 253751

4
@ মিম্বিস: অবিচ্ছিন্নতা থেকেই #timeসম্ভবত জীবিত মানুষের বয়স আপডেট করা ইত্যাদি হতে পারে
উইলিয়াম ভ্যান ওনসেম

15

পাইথ, 3 বাইট

!OQ

এটি অনলাইনে চেষ্টা করুন

0 থেকে ইনপুট এলোমেলো পছন্দের সাধারণ বিপর্যয়

$মজাদারভাবে পাইথ-এ কোনও ফাংশন তৈরি করা সম্ভব নয় যা পাইথ ফাংশনগুলি স্বয়ংক্রিয়ভাবে মেমোজাইজ হয় ized



@ ল্যাকইনুন ঠিক আছে, আমি একটি র্যান্ডম ফাংশনের জন্য সময়টি ব্যবহার করতে ভুলে গিয়েছিলাম, এটি বরং চতুর।
FryAmTheEggman

না, আমি সময়টিকে কেবল স্মরণে রেখেছি।
লিকি নুন

1
আমি সচেতন, আমার ধারণা আমি কেবল এটি ভালভাবে শব্দ করি নি: পি বলেছিল যে আমি মনে করি না যে এটি বেশিরভাগ আবেদনের জন্য সত্যিকার অর্থে কাজ করবে, যদি এটি কোনও কারণে পুরো প্রোগ্রামের চেয়ে আরও ভাল হত তবে। সময়টিকে আর্গুমেন্ট হিসাবে গ্রহণ করা সম্ভবত ডিফল্টরূপে অনুমোদিত নয়।
FryAmTheEggman

1
@ ল্যাকইনুন আমি বিশ্বাস করি এই প্রশ্নটি শেষের পূর্বেই Qপূরণ হওয়ার পূর্বে রয়েছে, অন্যথায় আমি উত্তর দিতাম !O;)
ফ্রাইআম দ্য এজিগম্যান

12

সিজেম, 5 বাইট

এইগুলি সঙ্গে দ্রুত হতে হবে ...

rimr!

এটি এখানে পরীক্ষা করুন।

ব্যাখ্যা

ri e# Read input and convert to integer N.
mr e# Get a uniformly random value in [0 1 ... N-1].
!  e# Logical NOT, turns 0 into 1 and everything else into 0.

11
" এইগুলির সাথে দ্রুত হতে হবে ... " এটি ওপির সাথে একমত হওয়ার কারণ যা "" যথেষ্ট সাধারণ কোড-গল্ফ চ্যালেঞ্জ নেই "। যদি এফজিআইটিডাব্লু একটি সমস্যা হয় তবে আইএমও এটি খুব সাধারণ।
পিটার টেলর

12

টিআই-বেসিক, একটি বাইট টোকেন ব্যবহার করে 4 বাইট

not(int(Ansrand

ইনপুটটির পূর্ণসংখ্যার অংশ [0,1) এ এলোমেলো সংখ্যার শূন্য হয় কিনা তা নির্ধারণ করে। Ansrand<1কাজ করে।


কিভাবে ... যে চার বাইট?
জন ডিভোরাক

3
@ জনডভোরাক প্রথম বাইটসটি নয় (এর পরেরটি ইনট (পরবর্তীটি আনস, পরেরটি র্যান্ড। সাধারণভাবে, গ্রাফিং ক্যালকুলেটররা ASCII কে প্রোগ্রামগুলির অভ্যন্তরীণ প্রতিনিধিত্ব হিসাবে ব্যবহার করে না
ব্যবহারকারী 253751

@immibis সাধারণভাবে, কম্পিউটারগুলি ASCII ব্যবহার করে না। এটি প্রশ্নবিদ্ধ হতে পারে, সে সম্পর্কে কোনও মেটা আলোচনা আছে কি?
Kroltan

7
@ ক্রোলটান হ্যাঁ; এই মেটা আলোচনা, এবং এই টোকেন যে এক বাইট, যা সব চার যে আমি ব্যবহৃত অন্তর্ভুক্ত হয় তালিকা রয়েছে।
lirtosiast

থমাসকওয়া ধন্যবাদ!
Kroltan

11

এমএটিএল, 5 বাইট

এটির তিনটি ভিন্ন সংস্করণ, সমস্ত দৈর্ঘ্য 5।

iYr1=

যা একটি ইনপুট নেয় ( i), এটি 1 এবং সেই সংখ্যার ( Yr) এর মধ্যে একটি এলোমেলো পূর্ণসংখ্যার উত্পন্ন করে এবং এটি 1 ( 1=) এর সমান কিনা তা দেখায় । অন্যথা,

li/r>

একটি 1 তৈরি করুন, ( এই মুহূর্তে lকরার সাথে বাগ রয়েছে 1i), একটি ইনপুট নিন ( i), 1 / এন ( /) পেতে ভাগ করুন , 0 এবং 1 ( r) এর মধ্যে একটি এলোমেলো সংখ্যা তৈরি করুন , এবং দেখুন এলোমেলো কিনা সংখ্যাটি 1 / এন এর চেয়ে ছোট। অথবা,

ir*1<

নিন এবং ইনপুট ( i) দিন এবং 0 এবং 1 ( r*) এর মধ্যে একটি এলোমেলো সংখ্যা দ্বারা গুণ করুন এবং দেখুন ফলাফল 1 ( 1<) এর চেয়ে ছোট কিনা ।

ম্যাটল্যাবে, এমএটিএল নয়, আপনি এই বেনাম ফাংশনটি করতে পারেন

@(n)n*rand<1

ans(5)উদাহরণস্বরূপ, 12 বাইটের জন্য যা ব্যবহার করে ব্যবহৃত হয় ।


10

জাভাস্ক্রিপ্ট ES6, 15 বাইট

-5 বাইটস ডাউনগোটকে ধন্যবাদ।

x=>1>new Date%x

এই উত্তরের কৌশল অবলম্বন (ব্যবহার) ।


1
new Dateএছাড়াও কাজ করতে পারে এবং কয়েকটি বাইট সংরক্ষণ করতে পারে
ডাউনগোট

@ ডাউনগোট আহ, ঠিক আছে, তারিখ এলোমেলো!
কনর ও'ব্রায়েন

10

জুলিয়া, 17 16 15 বাইট

n->2>rand(1:n)

এটি এমন একটি ফাংশন যা 1 এর মধ্যে এলোমেলো পূর্ণসংখ্যার উত্পন্ন করে এবং nএটি 2 এর চেয়ে কম কিনা তা পরীক্ষা করে Theretrue

টমাস কোয়াকে ধন্যবাদ 1 বাইট সংরক্ষিত!


9

মাইক্রোসক্রিপ্ট II , 3 বাইট

NR!

একটি পূর্ণসংখ্যা পড়ে n, 0এবং n-1(অন্তর্ভুক্ত) এর মধ্যে একটি এলোমেলো পূর্ণসংখ্যার উত্পাদন করে , তারপরে সেই মানটিতে বুলিয়ান অবহেলা প্রয়োগ করে।


8

ক্যান্ডি , 2 বাইট

Hn

এইচ হেইসেন-ডাবলকে বোঝায়

n এর অর্থ দাঁড়ায় না

'এন' সংখ্যার ইনপুট হিসাবে -i পতাকা সহ পাস করা হয়। স্ট্যাকের মধ্যে থাকা মানগুলি প্রস্থান করার সময় মুদ্রিত হয়।

"দীর্ঘ" ফর্ম:

rand   # number between 0 and pop()
not    # cast to int, invert non-zero to zero, and zero to one

আমি মনে করি আপনাকে -iএকটি বাইট হিসাবে গণনা করা দরকার ।
lirtosiast

1
মূলত সংখ্যার ইনপুটটি পাস করার একমাত্র উপায় হ'ল -i পতাকা সহ। আমার ধারণা কেবল স্ট্যান্ডিন থেকে পড়া ভাষাগুলি কোনও ইনপুট স্পেসিফিকেশন জরিমানা ভোগ করে না?
ডেল জনসন

ঠিক আছে, যদি এখানে জেনেরিক ইনপুট পতাকা থাকে, বা আপনি কেবল যুক্তিগুলি পাস করার জন্য নিয়মিত সিএলএ ব্যবহার করেছেন তবে তা অবশ্যই ঠিক আছে। এটি অন্যায় বলে মনে হচ্ছে যদিও ডেটাটাইপটি নিখরচায় নির্দিষ্ট করা হচ্ছে।
lirtosiast

2
@ থমাসকওয়া একটি ডায়নামিক ভাষায় রচনা করা কোন ফাংশনটিতে ডকুমেন্টেশনে আর্গুমেন্টটি পূর্ণসংখ্যা কিনা তা নির্দিষ্ট করতে বাইটগুলি গণনা করা উচিত? ইন lambda x: random.random()<1/x(ungolfed) এটি "মুক্ত জন্য নির্দিষ্ট" যে যুক্তি একটি সংখ্যা।
ব্যবহারকারী 253751

@ ইমিবিস হুম, এটি একটি ভাল বিষয়। আমি অনুমান করি প্রোগ্রামগুলি এবং ফাংশনগুলির জন্য নিয়ম রাখার চেষ্টা করার পরে এটির অনুমতি দেওয়া উচিত। আমি মেটাতে একটি পোস্ট করব।
lirtosiast


7

আর, 30 22 বাইট

কোড

cat(runif(1)<1/scan())          #new
f=function(N)cat(runif(1)<1/N)  #old

এটি অভিন্ন বিতরণ (0 থেকে 1) থেকে একটি সংখ্যা উত্পন্ন করে এবং সময়টির সত্য 1 / n এর মূল্যায়ন করা উচিত।


6

জাপট, 6 বাইট

1>U*Mr

এটি অনলাইন চেষ্টা করুন!

Mrজেএস এর সমতুল্য Math.random। বাকিটা বেশ সুস্পষ্ট। আমি সম্ভবত একটি সংখ্যা ফাংশন যোগ করতে পারি যা 0 এবং সংখ্যার মধ্যে একটি এলোমেলো ফ্লোট তৈরি করে। এটি যখন ঘটে তখন দুটি বাইট সংরক্ষণ করা হবে:

1>Ur    // Doesn't currently work

বিকল্প সংস্করণ:

1>Ð %U

Ðএর সমতুল্য new Date(এবং তারিখ অবজেক্টটি যখন একটি সংখ্যায় রূপান্তরিত করতে বলা হয় তখন মিলিসেকেন্ডে বর্তমান টাইমস্ট্যাম্প হয়ে যায়। সুতরাং, এটি সম্পূর্ণরূপে এলোমেলো, যদি না এটি এমএস প্রতি একাধিকবার চালিত হয়।


6

মার্বেলস , 21 বাইট

}0    # takes one input n
--    # decrements n
??    # random value from range 0..n (inclusive)
=0?0  # push right if not equal to 0, fall through otherwise | convert to zero
++    # increment | no-op
{0//  # output | push left

আমি 0ভুয়া হতে এবং 1সত্যবাদী হয়েছি, যদিও মার্বেলাস হিসাবে দেখার সত্যিকারের কোনও কারণ নেই তবে তা আসলেই নেই। আরও মার্বেলিসি {0সত্য এবং {>মিথ্যা হিসাবে আউটপুট হবে । এটি দেখতে এটির মতো হবে:

}0
--
??
=0{>
{0

তবে আমি নিশ্চিত নই যে এটি বৈধ।


আমি এই নিয়ে একটি মেটা আলোচনার জন্য উঠে পড়ব। আমার দর্শনটির সংক্ষিপ্ত সংস্করণ: একটি ভিন্ন আউটপুটে একটি মান আউটপুট আউট করা অন্য ভাষায় বিভিন্ন আউটপুট tuples থাকার সমতুল্য। (শূন্য, 1) এবং (1, শূন্য) যদি অন্য কোনও ভাষায় আপনার সত্যবাদী এবং মিথ্যা মান হতে পারে তবে মার্বেলাসে {0 বনাম {> এর অনুমতি দেওয়া উচিত। PS: আপনার version> সংস্করণটি প্রস্থান করবে না কারণ আপনি কখনই অন্য আউটপুটটি পূরণ করেন না।
স্পার 21

@ স্পার এটি নিষ্ক্রিয়তার কারণে প্রস্থান করবে, না?
ওভাররেেক্টর

তুমি ঠিক বলছো. আমি বোবা বোধ করছি।
স্পার 21

6

এপিএল, 6 3 বাইট

+=?

এটি একটি ফাংশন ট্রেন যা পূর্ণসংখ্যা নেয় এবং 1 বা 0 (এপিএলের আসল / মিথ্যা) ফেরত দেয়। আমরা 1 থেকে ইনপুট ব্যবহার করে একটি এলোমেলো পূর্ণসংখ্যার উত্পাদন করি ?, তারপরে ইনপুটটি সেই পূর্ণসংখ্যার সমান কিনা তা পরীক্ষা করে দেখুন। ফলাফলটি সত্যের 1 / ইনপুট সুযোগে আসে।

টমাস কোয়ার জন্য 3 বাইট সংরক্ষণ করা হয়েছে!


@ থমাসকওয়া আমি এক ধরণের ট্রেনের কথা ভেবেছিলাম, তবে যদি দায়িত্ব অর্পণ করা হয় তবে এটি কি "নামকরণের ফাংশন" হিসাবে গণ্য হয়? আমি অনুমান করি যে এটি "নামযুক্ত" অংশটি একে একে একে একে ছুঁড়ে মারছে কারণ এটি একেবারেই অল্প মাত্রায় আছে।
অ্যালেক্স এ।

@ থমাসকওয়া ট্রেনগুলির অ্যাসাইনমেন্ট (এবং উত্পন্ন ফাংশন) অন্যান্য সমস্ত কার্যভারের সাথে সম্পূর্ণ সমান্তরাল।
অ্যাডম

@ এনবিজেড সমান্তরাল বলতে কী বোঝ?
lirtosiast

@ থমাসকওয়া সমতুল্য; অন্য কোনও ফাংশন অ্যাসাইনমেন্টের মতো আচরণ করা।
অ্যাডম

আমি '+' এর পরিবর্তে ব্যবহার করব কারণ +জটিল সংখ্যার জন্য সংযুক্তি। অবশ্যই এটি এখানে কিছু যায় আসে না, এবং +এটি সনাতন পরিচয় (কোনও বিকল্প নেই), তবে এখন আমাদের (একই) রয়েছে। Scalars এর জন্য অন্যান্য নো অপস আছেন: (সত্যে পরিণত), (বাছাই), (ঘিরা), (বিভক্ত), (মিশ্রণ), (অনন্য), (পক্ষভুক্ত), ,(জটিল করে তোলা), (টেবিল), (রিভার্স), (বিপরীতক্রমে প্রথম), এবং (স্থানান্তর) কেউ কেউ স্কেলারটিকে ভেক্টর বা ম্যাট্রিক্সে পরিবর্তন করে।
আদম

6

প্লাটিপাড় , 3 বাইট

#?!

#?ইনপুট [0,n)যেখানে একটি এলোমেলো নম্বর পায় n। যদি এটির আগে সংখ্যাটি !দেয় trueতবে 0তা ফেরত দেয় false

প্রয়োগ করা হয়েছে এমন আরও সাম্প্রতিক বৈশিষ্ট্যগুলি ব্যবহার করে (তবে দুর্ভাগ্যক্রমে আমার প্রতিশ্রুতিবদ্ধ নয়) এই প্রশ্নটি জিজ্ঞাসা করার আগে আমি এটি দিয়ে ২ এ নামিয়ে আনতে পারি ~! এটি অনলাইনে চেষ্টা করে পারি !


5

জাভা, 43 বাইট

boolean b(int a){return a*Math.random()<1;}

1
a->a*Math.random()<1খাটো হয়।
TheNumberOne

"জাভা 7 বা তার আগের" নির্দিষ্ট করা উচিত।
কর্সিকা

@ corsiKlauseHoHoHo যদিও এটি জাভা 8 তে কাজ করে
সুপারজেডি ২৪

1
অবশ্যই এটি করে - তবে এটি জাভা 8 এর জন্য গল্ফ করা হয়নি, যা স্থান বাঁচাতে ল্যাম্বডাস ব্যবহার করবে। এই যুক্তি অনুসারে, সমস্ত জাভা উত্তরগুলিও গ্রোভির উত্তর, তবে গ্রোভি সর্বদা একই বা ছোট কারণ এর শর্টকাট জাভা নেই।
কর্সিকা

5

সি, 24 বাইট

f(n){return!(rand()%n);}

আমি প্রথম 4 টি অক্ষর অপসারণ করে ওপি'র সম্পাদনাটি ফিরিয়ে দিয়েছি। এটা তোলে এর চমৎকার বাইট কমে, কিন্তু আমার কাছে থাকার returnছাড়া f(n)চিহ্নগুলি সিন্টেক্সের কোন অর্থে দেখা যায় না।
স্তরের নদী সেন্ট

1
@ সন্নিবেশকার rand()%nনাম এখানে পরিসরে একটি এলোমেলো নম্বর পাওয়ার একটি স্ট্যান্ডার্ড উপায় 0..n-1। আপনি সঠিক, এটি nতুলনায় অনেক ছোট হওয়ার উপর নির্ভর করে তবে প্রশ্নে উল্লিখিত RAND_MAXকোনও উচ্চতর সীমা নেই n। একটি বিকল্প পদ্ধতির একটি প্রত্যাখ্যান থেকে সমস্ত নম্বর পুনরায় রোল করতে হবে nRAND_MAX কিন্তু এটা ছোট এ একেবারে অদক্ষ হবে n
স্তর নদী সেন্ট

5

> <>, -V = 30 বাইটের জন্য 27 + 3

এখানে একটি অ-অ-সম-সমাধান রয়েছে যেখানে আমি 0 বা 1 এর 15876 এলোমেলো বাছাইয়ের যোগফলকে Mod করছি:

0"~":*>:?vr%0=n;
1-$1+$^-1x

এন -v পতাকা সহ স্ট্যাকের ইনপুট থাকতে হবে, মিথ্যা জন্য আউটপুট 0 এবং সত্যের জন্য 1 হবে।

পরিবর্তে 1/2 ^ N এর জন্য কার্যকর এমন একটি আরও স্মার্ট এবং অভিন্ন সমাধান:

4{:?!v1-}:">"$2p:"x"$3p:"^"$4p1+:">"$3p1+!
   ^1<
0n;
1n;>
 

একটি ইনপুট 3 এর জন্য আপনি 0 পাওয়ার 1 এবং 7/8 পাওয়ার 1/8 সম্ভাবনা পেয়েছেন।

ব্যাখ্যা:

আমি x৪ র্থ লাইনে যতটুকু প্রয়োজন সংযোজন করি এবং সেগুলি দিক দিয়ে ঘিরে থাকি যাতে এর বাইরে কেবল দুটি উপায় থাকে x: হয় মিথ্যা আউটপুট বা পরেরটি x। যদি সমস্ত xসঠিক পথে চলে যায় তবে শেষটি সত্যবাদী আউটপুটটির দিকে যাত্রা করবে।

উদাহরণস্বরূপ এন = 5 এর জন্য, চূড়ান্ত কোডস্পেসটি নিম্নলিখিত:

4{:?!v1-}:">"$2p:"x"$3p:"^"$4p1+:">"$3p1+!
   ^1<
0n; > > > > >
1n;>x>x>x>x>x>
    ^ ^ ^ ^ ^

এটি সত্য হলেও আপনি স্বেচ্ছাসেবী N এর জন্য নিখুঁত বিতরণ পেতে পারবেন না, বা অন্য কেউ পিআরএনজি ব্যবহার করতে পারবেন না। একগুচ্ছ এলোমেলো বিট পেতে কয়েক বার লুপ করতে পারতেন, সেগুলি একটি আইটি আইতে একত্রিত করতে পারেন, তারপরে I% N কে আপনার এলোমেলো মান হিসাবে ব্যবহার করতে পারেন।
স্পার 21

@ স্পার আমার উত্তর সম্পাদনা করেছে তবে আমার মনে হচ্ছে যে প্রচুর পরিমাণে পুনরাবৃত্তি ব্যবহার করলে ফলাফলটি পূর্ণসংখ্যার 'গড়পড়তা' হয়ে যায়, ফলে আউটপুটটিকে ভারী দিকে ঝুঁকতে পারে (iterNum/2)%N। আমি মনে করি না যে কম সংখ্যা ব্যবহার করাও সমাধান হবে। আমি সম্ভবত আপনাকে বেশ বুঝতে পারি না, অথবা সমাধানটির আরও ভাল করার জন্য আপনার আরও কোনও ধারণা থাকতে পারে?
হারুন

একসাথে 15000 বিট যোগ করার পরিবর্তে, কেবল 32 বিট উত্পাদন করুন এবং সেগুলি সংমিশ্রণ করুন, আপনাকে 32-বিট এলোমেলো পূর্ণসংখ্যা প্রদান করবে। মোড যে।
স্পার

@ স্পার যা সত্যিই ভাল বলে মনে হচ্ছে, এমনকি যদি আমি জানি না কেন;) এর জন্য আরও বেশি বাইট খরচ হবে (> <> বাইট অপারেশন এবং বেস রূপান্তরকরণের জন্য ব্যয় করে) তবে আমি এই সন্ধ্যায় আমার উত্তরটি পরিবর্তন করব (সিইএসটি)।
হারুন

আপনি বিট দুটি যোগ করে যোগ করতে পারেন: r = 0; (0..32) r = r * 2 + র‌্যান্ডব্যাটের জন্য;
স্পার

4

ম্যাথমেটিকা, 18 16 বাইট

#RandomReal[]<1&

বেসিক সমাধান। নামবিহীন Function[0, 1) এ একটি এলোমেলো সংখ্যা তৈরি করে, এটি তার যুক্তি দ্বারা গুণিত করে এবং এটি এখনও 1 এর চেয়ে কম কিনা তা পরীক্ষা করে।


4

পাইথন, 42 বাইট

import random
lambda n:1>random.random()*n

সম্পাদন করা : time.time()বিতরণের কারণে উত্তর সরানো হয়েছে ।


2
জন্য random, এটি from random import*সংরক্ষণ করা মূল্যবান random.timeযদিও জন্য না।
xnor

1
মডুলো বিভাগ দ্বারা উত্পাদিত এলোমেলো সংখ্যাগুলি সমানভাবে বিতরণ করা হয় না
ট্র্যাং ওউল

@ ট্র্যাংআল এটি একটি ভাল বিষয়; বৃহত্তর nজন্য প্রভাব লক্ষণীয় হতে পারে। আমি মনে করি 1>time.time()%1*nকাজ করতে পারে।
lirtosiast

@ ট্র্যাংআল আমি অনুমান করি যে randআপনি সি এবং time.timeপাইথনের মধ্যে পার্থক্য জানেন? ... আধুনিকতার একটি স্পষ্ট বৈশিষ্ট্য এটি বর্তমান সময়কে ফিরিয়ে দেয় , যা সীমাহীন নয়, যাতে time.time()%nএকটি অভিন্ন বিতরণ থাকে (দীর্ঘ সময় ধরে) যে কোনও জন্য n
ব্যবহারকারী 253751

4

টিস্ক্রিপ্ট , 3 বাইট

!N×

এখানে চেষ্টা করুন।

ব্যাখ্যা

 N  maps to Math.rand which is a utility function that returns an integer
    between `arg1` and `arg2` or `0` and `arg1` if only one argument is
    provided.
  × is expanded to `(x)`, where `x` is initialised with the value provided
    in the input boxes; × represents byte '\xd7'
!   negate the result, 0 results in true, anything else false

1
সাতটি অক্ষর 6 বাইট পর্যন্ত কীভাবে যুক্ত হয়? এবং (আর) একটি (একক বাইট) এএনএসআই চর?
অ্যাডম

@ এনবিজেড, হা হা! আমি মনে করি আমি মিথ্যা বলেছি ... আমি হ্যাংওভারকে দোষ দিচ্ছি ... আমি এখনই আপডেট করব যেহেতু আমি প্রক্রিয়াটিকে আরও সরলভাবে পরিবর্তন করতে চলেছি যা আমি সবেমাত্র লক্ষ্য করেছি! এই বর্তমান সংস্করণে ®চরটি প্রতিনিধিত্ব করে '\xae'তাই কেবল একটি বাইট। :)
ডোম হেস্টিংস

4

ফাজি অক্টোো গুয়াকামোল, 10 বাইট

^-!_[0]1.|

ব্যাখ্যা:

^-!_[0]1.|

^          # Get input.
 -         # Decrement, so we can append <ToS> zeros and a 1 to the stack.
  !        # Set loop counter.
   _       # Pop, since we are done with the input.
    [      # Start loop
     0     # Push 0
      ]    # End for loop. We have pushed input-1 0s to the stack.
       1   # Push a single 1 to the stack.
        .  # Switch stacks
         | # Pick a random item from the inactive stack, which has n-1 falsy items and 1 truthy item, so the truthy probability is 1/n.
           # (implicit output)

3

পার্ল 6 ,  10   8 বাইট

!(^*).pick
#  ^- The * is the argument

এই কোডটি 0 থেকে আপ পর্যন্ত ইনপুট বাদ দিয়ে একটি ব্যাপ্তি তৈরি করে *। এরপরে এটি pickএলোমেলোভাবে এক এবং এটি !যখন প্রাপ্ত হয় তখন সত্য হয় 0

1>*.rand
# ^- The * is the argument

এটি ইনপুট নেয় *এবং এটিকে থেকে এলোমেলো সংখ্যায় গুণ করে এটি এর 0..^1চেয়ে ছোট হলে সত্যটি ফেরত দেয় 1

# store it in a lexical code variable for ease of use
my &code = 1>*.rand;

die "never dies here" unless code 1;

for ^8 { say code 4 }
False
True
False
False
False
True
False
False

3

প্রোলোগ (এসডাব্লুআই), 24 বাইট

কোড:

p(N):-X is 1/N,maybe(X).

হতে পারে (+ পি) এমন একটি ফাংশন যা সম্ভাব্যতা পি সহ সফল হয় এবং সম্ভাবনার সাথে ব্যর্থ হয় 1-পি

উদাহরণ:

p(4).
false

p(4).
false

p(4).
true

3

পাওয়ারশেল, 25 বাইট

!(Random -ma($args[0]--))

Get-Randomফাংশন যখন একটি প্রদত্ত -Maximum প্যারামিটার nব্যাপ্তি থেকে একটি মান [0,n)। আমাদের ইনপুট থেকে 1 টি বিয়োগ করে আমরা এটির উত্সাহ অর্জন $args[0]করি, তাই আমরা সঠিকভাবে শূন্য-সূচকযুক্ত হয়ে থাকি এবং এলোমেলো মান পাই। অবিকল 1/nসময়ের মধ্যে, এই মানটি হবে 0, সুতরাং যখন আমরা বুলিয়ান-এটির সাথে !এটি ফিরে আসবে True। অন্য সময় ফিরে আসবে False


3

জে, 3 বাইট

0=?

এটি একটি মোনাডিক কাঁটাচামচ যা ডানদিকে একটি যুক্তি নেয়। একইভাবে এপিএল,? একটি এলোমেলো পূর্ণসংখ্যার উত্পাদন করে; তবে জে অ্যারেগুলি শূন্য-ভিত্তিক। সুতরাং আমরা ইনপুট পরিবর্তে 0 সঙ্গে তুলনা করি।



3

পিএইচপি, 22 বাইট

<?=2>rand(1,$argv[1]);

রাউন্ডআপ nকম্যান্ড লাইন থেকে, ভালো:

$ php probability.php 4

আউটপুটগুলি ( falseপিএইচপি খালি স্ট্রিংয়ে ফেলে দেওয়া হয়) বা 1(এর ক্ষেত্রে true)।


3

সি #, 56 45 বাইট

ধন্যবাদ, গোলাপিফ্লোয়েডএক্স 33 এখন 45।

bool b(int n){return new Random().Next(n)<1;}

পুরাতন 56 বাইট

এর চেয়ে বড় বা সমান 0 এবং এর চেয়ে ছোট এলোমেলো ধনাত্মক পূর্ণসংখ্যার উত্পন্ন করে এবং তুলনার ফলাফলের nচেয়ে ছোট কিনা তা পরীক্ষা করে 1

bool a(int n){Random r=new Random();return r.Next(n)<1;}

1
পিপিসিজিতে আপনাকে স্বাগতম! দুর্ভাগ্যক্রমে, এই জমাটি কাজ করে না, কারণ Random.Next(k)একটি পূর্ণসংখ্যা kযেমন প্রদান করে 0 <= k < n। শর্তটি পরিবর্তিত করে <1, এটি সঠিক হবে। তদতিরিক্ত, ল্যাম্বডা এক্সপ্রেশনটির ব্যবহার আপনার কোডকে আরও সংক্ষিপ্ত করতে পারে।
মেগো

@ মেগো শিওর, মন্তব্যের জন্য আপনাকে ধন্যবাদ। আমি এটি তৈরি করেছি 0 < k <= nএবং এটি আপনার বলে মত হওয়া উচিত। আমি সঙ্গে সঙ্গে এটি সংশোধন করব।
ivaan

2
var rতিনটি সাশ্রয় করুন ব্যবহার অথবা যদি সি # 6, bool a(int n) => new Random().Next(n)<1;41 এর জন্য Random
গোলাপিফ্লয়েডএক্স 33

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