দিনের র্যান্ডম গল্ফ # 7: একটি স্বতন্ত্রভাবে এলোমেলো চরিত্র


47

সিরিজ সম্পর্কে

এটি ডে সিরিজের র‌্যান্ডম গল্ফের একটি অতিথি এন্ট্রি।

প্রথমে, আপনি অন্য কোনও কোড গল্ফ চ্যালেঞ্জের মতো এটি ব্যবহার করতে পারেন এবং সিরিজটি মোটেও চিন্তা না করেই এর উত্তর দিতে পারেন। তবে, সমস্ত চ্যালেঞ্জ জুড়ে একটি লিডারবোর্ড রয়েছে। প্রথম পোস্টে সিরিজ সম্পর্কে আরও কিছু তথ্যের সাথে আপনি লিডারবোর্ডটি সন্ধান করতে পারেন ।

ইনপুট

কোনও ইনপুট নেওয়া হয় না।

আউটপুট

বর্ণমালার একটি অক্ষর (ক্ষেত্রে অপ্রাসঙ্গিক), একটি anচ্ছিক ট্রেলিং নিউলাইন রয়েছে। প্রতিটি বর্ণের অবশ্যই নির্বাচিত হওয়ার শূন্য- সম্ভাবনা থাকতে হবে এবং সমস্ত 26 টি সম্ভাবনা অবশ্যই আলাদা । সমস্ত অস্পষ্টতা অপসারণ করতে: বিচ্ছিন্নতার অর্থ হল যে দুটি সম্ভাব্যতা অবশ্যই একে অপরের সমান নয়।

স্কোরিং

এটি কোড গল্ফ। বাইটস মধ্যে সংক্ষিপ্ত কোড।

একটি বৈধ এন্ট্রি একটি সম্পূর্ণ প্রোগ্রাম বা ফাংশন যা শেষ না হওয়ার শূন্যতার সম্ভাবনা থাকে।

বর্ণমালা

বিভ্রান্তি এড়াতে, ব্যবহৃত বিশেষ বর্ণমালা হ'ল ল্যাটিন বর্ণমালা:

উভয় ক্ষেত্রেই

ABCDEFGHIJKLMNOPQRSTUVWXYZ

অথবা

abcdefghijklmnopqrstuvwxyz

আপনি আপার আউটপুট বা লোয়ার কেস আউটপুট চয়ন করতে পারেন। বিকল্পভাবে, আপনি যদি বিভিন্নর ক্ষেত্রে বিভিন্ন ক্ষেত্রে কেস আউটপুট চয়ন করতে পারেন তবে এটি সহায়তা করে। প্রদত্ত চিঠির সম্ভাব্যতা হ'ল চিঠির সম্ভাব্যতা হ'ল উভয় ক্ষেত্রে (উপরের বা নিম্ন) প্রদর্শিত হয়।

ব্যাখ্যা

এটি আউটপুট থেকে একেবারেই স্পষ্ট হবে না, দয়া করে আপনি কীভাবে 26 স্বতন্ত্র সম্ভাবনা অর্জন করেছেন তার একটি স্পষ্ট ব্যাখ্যা অন্তর্ভুক্ত করুন।

লিডারবোর্ড

(থেকে এখানে )

সিরিজের প্রথম পোস্টটি সামগ্রিক লিডারবোর্ড তৈরি করে।

আপনার উত্তরগুলি প্রদর্শিত হবে তা নিশ্চিত করার জন্য, দয়া করে নীচের মার্কডাউন টেম্পলেটটি ব্যবহার করে প্রতিটি উত্তর শিরোনাম দিয়ে শুরু করুন:

## Language Name, N bytes

Nআপনার জমা দেওয়ার আকারটি কোথায় ? আপনি যদি নিজের স্কোরটি উন্নত করেন তবে আপনি পুরানো স্কোরগুলি শিরোনামে রেখে দিতে পারেন । এই ক্ষেত্রে:

## Ruby, <s>104</s> <s>101</s> 96 bytes

(ভাষাটি বর্তমানে দেখানো হয়নি, তবে স্নিপেটের প্রয়োজন এবং এটি বিশ্লেষণ করতে পারে এবং ভবিষ্যতে আমি একটি উপ-ভাষা লিডারবোর্ড যুক্ত করতে পারি))


আপনি 26 স্বতন্ত্র সম্ভাবনাগুলি কীভাবে পরিমাপ করবেন? 26 বার প্রোগ্রাম চালিয়ে?
আপনি

1
@ আপনি সমাধানগুলি দেখুন - চমত্কার ব্যাখ্যা সহ কয়েকটি ভিন্ন পদ্ধতি রয়েছে
ট্রাইকোপ্লাক্স

এটি যদি কোনও ফাংশন হয় তবে এটি কি মুদ্রণের দরকার আছে বা এটি কেবল অক্ষরের মান ফিরিয়ে দিতে পারে?
জেফ রেডি

@ জিফ ইনপুট এবং আউটপুট জন্য আমাদের পূর্বনির্ধারিত অনুসারে, হয় STDOUT এ মুদ্রণ বা একটি চরিত্র ফিরিয়ে দেওয়া ঠিক আছে।
ট্রাইকোপলাক্স

@ জিফ নোট করুন যে এটি অবশ্যই একটি চরিত্র হতে হবে, কেবল এটির প্রতিনিধিত্ব করে এমন একটি সংখ্যা নয়। উদাহরণস্বরূপ, Aবরং 65
ট্রাইকোপলাক্স

উত্তর:


13

পাইথ, ৫

Os._G

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

বর্ণমালার উপসর্গ নির্ণয় করে, তাই: ["a", "ab", "abc", ..., "abcdefghijklmnopqrstuvwxyz"]। তারপরে তালিকাটি সমতল করে এবং এটিকে থেকে অভিন্নভাবে একটি এলোমেলো উপাদান নির্বাচন করে। এর অর্থ হ'ল যেহেতু a26 বার উপস্থিত হয়েছে, b25 বার প্রদর্শিত হয়েছে, zকেবলমাত্র 1 টি উপস্থিতির সাথে প্রতিটি অক্ষরের উপস্থিতি আলাদা হওয়ার সম্ভাবনা রয়েছে। মোট স্ট্রিংয়ের 351 টি অক্ষর রয়েছে।


1
আমি উত্তরটি পছন্দ করি। খুব চালাক.
অ্যালেন ফিশার

24

এমএটিএল, Characters টি চরিত্র

1Y2Xr)

ব্যাখ্যা:

Xrএকটি সাধারণভাবে বিতরণ করা এলোমেলো নম্বর )নিন এটিকে সূচিতে ব্যবহার করুন ... 1Y2বর্ণমালা

ডিস্ট্রিবিউশনটি 0 এর আশেপাশে প্রতিসম হয়, এবং সংখ্যার চরের অনুবাদ 0.5 টির সাথে প্রতিসম হয়। যেমন সম্ভাবনা পৃথক করা উচিত।


2
ওহ, গাউসির বিতরণটি ব্যবহার করার জন্য খুব ভাল ধারণা!
লুইস মেন্ডো

1
কাজের জন্য "সেরা" ভাষা, এখনও জেলি দ্বারা প্রহার করা। যদিও দুর্দান্ত সমাধান।
সক্রাটিক ফিনিক্স

19

05 এ বি 1 ই , 6 বাইট

কোড

A.pJ.R

ব্যাখ্যা

A        # Pushes the alphabet
 .p      # Computes all prefixes
   J     # Join them together

আমাদের এখন নিম্নলিখিত স্ট্রিং রয়েছে:

aababcabcdabcdeabcdefabcdefgabcdefghabcdefghiabcdefghijabcdefghijkabcdefghijklabcdefghijklmabcdefghijklmnabcdefghijklmnoabcdefghijklmnopabcdefghijklmnopqabcdefghijklmnopqrabcdefghijklmnopqrsabcdefghijklmnopqrstabcdefghijklmnopqrstuabcdefghijklmnopqrstuvabcdefghijklmnopqrstuvwabcdefghijklmnopqrstuvwxabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyz

এর পরে, আমরা ব্যবহার করে একটি এলোমেলো উপাদান বেছে নিই .R

সম্ভাবনা

a > 7.4074074074074066%
b > 7.122507122507122%
c > 6.837606837606838%
d > 6.552706552706553%
e > 6.267806267806268%
f > 5.982905982905983%
g > 5.698005698005698%
h > 5.413105413105414%
i > 5.128205128205128%
j > 4.843304843304843%
k > 4.5584045584045585%
l > 4.273504273504274%
m > 3.988603988603989%
n > 3.7037037037037033%
o > 3.418803418803419%
p > 3.133903133903134%
q > 2.849002849002849%
r > 2.564102564102564%
s > 2.2792022792022792%
t > 1.9943019943019944%
u > 1.7094017094017095%
v > 1.4245014245014245%
w > 1.1396011396011396%
x > 0.8547008547008548%
y > 0.5698005698005698%
z > 0.2849002849002849%

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


18

জেলি , 5 বাইট

ØA»ẊX

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

কিভাবে এটা কাজ করে

ØA«ẊX  Main link. No arguments.

ØA     Set argument and return value to the alphabet.
   Ẋ   Shuffle it.
  »    Yield the maximum of each letter in the sorted alphabet, and the
       corresponding character in the shuffled one.
    X  Pseudo-randomly select a letter of the resulting array.

পটভূমি

যাক এল 0 , ..., এল 25 -এর মানে তাদের প্রাকৃতিক অনুক্রমে বর্ণমালার অক্ষর, এবং এস 0 ..., এস 25 এর একটি র্যান্ডম নির্বাচিত বিন্যাস অবিশেষে এ এল । সসীম ক্রম নির্ধারণ এম দ্বারা এম এন = MAX (এল এন , এস এন )

ফিক্স এন মধ্যে 0, ... 25 এবং সংজ্ঞায়িত সূচক যেমন যে হিসাবে এল এন = এস

সম্ভাব্যতা সঙ্গে 1/26 , এল এন = এস এন এবং N = ট , তাই এম এন = এল এন এবং এল এন occurrs একবার এম

সম্ভাব্যতা সঙ্গে 25/26 , এল এন ≠ এস এন এবং N ≠ ট । এই ক্ষেত্রে, নিম্নলিখিত ঘটে।

  • সম্ভাব্যতা সঙ্গে N / 25 , এস এন অন্যতম এল 0 , ..., এল এন - 1 , তাই এল এন > এস এন এবং এম এন = এল এন

  • স্বাধীনভাবে, এছাড়াও সম্ভাব্যতা সঙ্গে N / 25 , এক 1 - 0, ... এন তাই হয়, এস > এল এবং এম = এস = এল এন

সুতরাং, ঘটনার প্রত্যাশিত সংখ্যা এল এন মধ্যে এম হল 1/26 + + 25/26 · (ঢ / 25 + N / 25) = (2n + 1 টি) / 26

অবশেষে, যদি আমরা এখন একটি শব্দ নির্বাচন মি এর এম অবিশেষে র্যান্ডম এ চিঠি এল এন আমরা সম্ভাব্যতা সঙ্গে নির্বাচন করা যেতে (2n + 1) / 26/26 = ( 2n + 1 টি) / 676

এটি সম্ভাব্যতার নিম্নলিখিত বিতরণ দেয়।

p(m = A) =  1/676 ≈ 0.00148
p(m = B) =  3/676 ≈ 0.00444
p(m = C) =  5/676 ≈ 0.00740
p(m = D) =  7/676 ≈ 0.01036
p(m = E) =  9/676 ≈ 0.01331
p(m = F) = 11/676 ≈ 0.01627
p(m = G) = 13/676 ≈ 0.01923
p(m = H) = 15/676 ≈ 0.02219
p(m = I) = 17/676 ≈ 0.02515
p(m = J) = 19/676 ≈ 0.02811
p(m = K) = 21/676 ≈ 0.03107
p(m = L) = 23/676 ≈ 0.03402
p(m = M) = 25/676 ≈ 0.03698
p(m = N) = 27/676 ≈ 0.03994
p(m = O) = 29/676 ≈ 0.04290
p(m = P) = 31/676 ≈ 0.04586
p(m = Q) = 33/676 ≈ 0.04882
p(m = R) = 35/676 ≈ 0.05178
p(m = S) = 37/676 ≈ 0.05473
p(m = T) = 39/676 ≈ 0.05769
p(m = U) = 41/676 ≈ 0.06065
p(m = V) = 43/676 ≈ 0.06361
p(m = W) = 45/676 ≈ 0.06657
p(m = X) = 47/676 ≈ 0.06953
p(m = Y) = 49/676 ≈ 0.07249
p(m = Z) = 51/676 ≈ 0.07544

আপনি লিঙ্কটি ১০,০০০ বার কল করে পরীক্ষামূলকভাবে যাচাই করতে পারবেন (কয়েক সেকেন্ড সময় নেয়)।


1
@ রবার্টফ্রেজার এলোমেলো এবং ফলন পদক্ষেপ একটি এ-এর সাথে একটি তালিকা তৈরি করে যে কোনও জায়গায় এ-এর দুটি তালিকায় প্রদর্শিত হবে, এমন একটি বি যেখানে অন্য দুটি তালিকায় একটি বি উপস্থিত ছিল এবং অন্য তালিকার এ ছাড়া অন্য কিছু, ... জেড যে কোনও জায়গায় যে জেড উভয় তালিকায় হাজির। সুতরাং ফলাফল হিসাবে জেড হিসাবে প্রায় 52x প্রায় রয়েছে।
স্পার

1
পুনঃটুইট করেছেন
ডেনিস

2
ইউটিএফ -8-এ ডেনিসজাহেরউদ্দীন, হ্যাঁ তবে, জেলি একটি কাস্টম কোড পৃষ্ঠা ব্যবহার করে যা এটি প্রতিটি অক্ষরকে একক বাইট হিসাবে বোঝে এমন সমস্ত অক্ষরকে এনকোড করে। শিরোনামের বাইটস লিঙ্কটি এটিতে ইঙ্গিত করে।
ডেনিস

2
আমি দেখছি, আমি যখন ব্যাখ্যাটি পড়ি তখন তা অবিলম্বে পরিষ্কার হয়ে যায়নি যে আপনি নিয়মিত ইউটিএফ -8 পরিসরেরও সুবিধা নিতে পারবেন না। সুতরাং, আমি কী ধরে নিতে পারি যে দোভাষী বদলে এবং সমস্ত অক্ষরকে আলাদা আলাদা ইউটিএফ -8 অক্ষরে ম্যাপিংয়ের মাধ্যমে আপনার সম্পূর্ণ অভিন্ন কোড থাকবে (কেবলমাত্র কম পাঠযোগ্য / টাইপযোগ্য)? - যদি তা হয় তবে গল্ফের উদ্দেশ্যে কোনও বাইট গণনা করা উচিত তা উল্লেখ করার জন্য ব্যাখ্যাটি প্রসারিত করার বিষয়টি বিবেচনা করুন।
ডেনিস জাহেরউদ্দিন

2
@ ডেনিসজাহেরউদ্দিন যেমন README (শিরোনামের প্রথম লিঙ্ক) এ ব্যাখ্যা করা হয়েছে, দোভাষীর দুটি মোড রয়েছে (জেলি কোড পৃষ্ঠা এবং ইউটিএফ -8), সুতরাং আপনি এই প্রোগ্রামটি একটি আসল 5-বাইট ফাইলটিতে সংরক্ষণ করতে পারবেন। আমি যে সমস্ত উত্তর লিখি সেগুলিতে আমি সেই সমস্ত তথ্য যুক্ত করতে পারতাম, তবে সেগুলির মধ্যে অনেকগুলি রয়েছে, সুতরাং আমি পরিবর্তে লিঙ্কটি বেছে নিয়েছি।
ডেনিস

14

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

1Y2rU26*k)

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

কোড বিরতিতে (0,1) ( r) একটি অভিন্ন র্যান্ডম ভেরিয়েবল উত্পন্ন করে এবং এর স্কোয়ার ( U) গণনা করে । এটি অ-ইউনিফর্মের ফলে সম্ভাব্যতার ঘনত্ব হ্রাস করে। 26 ( 26*) দ্বারা গুণিত করা নিশ্চিত করে যে ফলাফলটি বিরতিতে হবে (0,26), এবং বৃত্তাকার ডাউন ( k) সম্ভাবনা হ্রাসের সাথে 0,1, ..., 25 মান উত্পাদন করে। মানটি )বড় হাতের বর্ণমালায় ( 1Y2) এর সূচক ( ) হিসাবে ব্যবহৃত হয় । যেহেতু এমএটিএল 1-ভিত্তিক মডুলার ইনডেক্সিং ব্যবহার করে, 0 Z, 1 থেকে A, 2 থেকে B ইত্যাদির সাথে সম্পর্কিত s

সম্ভাব্যতাগুলি স্বতন্ত্র বলে একটি চিত্র হিসাবে, এখানে 1000000 এলোমেলো বাস্তবায়নের ফলে একটি পৃথক হিস্টোগ্রাম রয়েছে। মাতলাব এ চালিয়ে গ্রাফ তৈরি করা হয়েছে:

bar(0:25, histc(floor(26*rand(1,1e6).^2), 0:25))

এখানে চিত্র বর্ণনা লিখুন


1
নিস! আমি যে সেরা সমাধানটি নিয়ে আসতে পারি তা হ'ল 16 বাইট
ডিজেএমসিএমহেম

1
@ ডিজেএমসিএমহেম চমৎকার পন্থা!
লুইস মেন্ডো

হতে পারে, তবে অনেক দীর্ঘ। : পি
ডিজেএমসিহেম

আরেকটি মজাদার বিকল্প: matl.suever.net/…
স্যুভার

আসলে আপনার দরকার নেই k! লক্ষ্য করা গেছে যে কোডগল্ফ.স্ট্যাকেক্সেঞ্জিং.com
ডেনিস জহিরউদ্দিন

13

জাভা 7, 62 57 56 বাইট

5 বাইট ধন্যবাদ পোকে ধন্যবাদ।

ট্রাইকোপ্লেক্সকে 1 বাইট ধন্যবাদ।

char r(){return(char)(65+(int)Math.sqrt(Math.random()*676));}
char r(){return(char)(65+Math.sqrt(Math.random()*676));}
char r(){return(char)(65+Math.sqrt(Math.random())*26);}

আইডিয়ন!

ফ্রিকোয়েন্সি ডায়াগ্রাম (1e6 রান, স্কেলিং ফ্যাক্টর 1/1000)

A: *
B: ****
C: *******
D: **********
E: *************
F: ****************
G: *******************
H: **********************
I: *************************
J: ***************************
K: ******************************
L: **********************************
M: ************************************
N: ***************************************
O: *******************************************
P: *********************************************
Q: ************************************************
R: ***************************************************
S: ******************************************************
T: *********************************************************
U: ************************************************************
V: ***************************************************************
W: ******************************************************************
X: *********************************************************************
Y: ************************************************************************
Z: ***************************************************************************

1
আমি মনে করি না আপনি টাইপকাস্ট করতে হবে
পোকে

@ পোকে ধন্যবাদ, গল্ফড
লিকি নুন

আপনি বন্ধনীর বাইরে 676 সরিয়ে একটি বাইট সংরক্ষণ করতে পারেন?
ট্রাইকোপলাক্স

নিবন্ধন করুন
Leaky নুন

2
sqrt(x*y*y) = sqrt(x)*y
ট্রাইকোপলাক্স

10

পার্ল, 24 বাইট

-4 বাইটস @ মার্টিন ইন্ডারকে
-1 বাইট @ ডোম হেস্টিংসকে ধন্যবাদ

say+(A..Z)[rand rand 26]

প্রয়োজন -M5.010বা -Eচালানোর জন্য:

perl -E 'say+(A..Z)[rand rand 26]'

নিম্নলিখিত কোডটি চালানো প্রতিটি বর্ণের উপস্থিতি প্রদর্শন করবে:

perl -MData::Printer -E '$h{(A..Z)[rand rand 26]}++ for 1 .. 1_000_000;$h{$_} = int($h{$_} / 100) / 100 for A .. Z;p %h;'
A 16.4
B 11.02
C 8.99
...
Z 0.07


এটি কীভাবে কাজ করে : আমি অনুমান করি কোডটি খুব সুস্পষ্ট, তবে এখনও: এটি 0এবং এর মধ্যে একটি এলোমেলো সংখ্যা পছন্দ করে rand 26। সুতরাং আরও অনেক বেশি সম্ভাবনা রয়েছে যে সংখ্যার 0(চিঠি A) নিকটে চয়েসেন হয়।


ব্যাখ্যাটি আমার কাছে উপলব্ধি করে :)
ট্রাইকোপল্যাক্স

চমৎকার সমাধান! আপনি একটি খালি তালিকা ব্যবহার করে 1 বাইট সংরক্ষণ করতে পারেন এবং +:say+(A..Z)[rand rand 26]
ডম হেস্টিংস

@ ডোমহাস্টিংস আরফ, আমি বোকা। আমি চেষ্টা করেছি (A..Z)[...]এবং এটি কার্যকর হয়নি, তাই আমি ভেবেছিলাম যে আমি এর মতো একটি বেনামে অ্যারে ব্যবহার করতে পারি, তবে এটি কেবল কারণ ছিল say.. ধন্যবাদ! :)
দাদা

10

পিএইচপি, 44 36 29 27 বাইট

ক্রস করা হয়েছে 44 এখনও নিয়মিত 44; (

সমস্ত সহায়তার জন্য সন্নিবেশকারী নাম, পেটা এবং ক্রিপ্টো ধন্যবাদ to

<?=chr(65+rand(0,675)**.5);

এটি 0 এবং 675 (= 26 2 -1) এর মধ্যে একটি এলোমেলো সংখ্যা চয়ন করে , এর বর্গমূল গ্রহণ করে এবং এটি মেঝে করে ( chrফাংশনটি তার যুক্তিকে পূর্ণসংখ্যায় রূপান্তর করে)। যেহেতু স্কোয়ারগুলির মধ্যে বিভিন্ন ব্যবধান থাকে তাই প্রতিটি সংখ্যা নির্বাচিত হওয়ার সম্ভাবনা আলাদা। প্রতিটি এন সম্ভাব্যতা (2 এন + 1) / 676 দিয়ে নির্বাচিত হয়।

এই নম্বরে আপনাকে 65 যোগ করার পদ্ধতি থেকে একটি র্যান্ডম অক্ষর দেয় Aকরার Z

কোডটির আদর্শ 1,000,000 বার চলছে


আপনি বন্ধ গলফ পারেন 4 বাইট : range(A,Z)
সন্নিবেশকারী নাম 15 ই

@ অন্তর্ভুক্তকারীর নাম: টিপটির জন্য ধন্যবাদ, তবে আমি মোটামুটি ব্যাপ্তি ব্যবহার না করে এবং ব্যবহার করে 8 বাইট গল্ফ করতে সক্ষম হয়েছি chr()
বিড়াল বিড়াল

3
আর ভালো. দুর্ভাগ্যক্রমে 44 এখনও নিয়মিত 44 । :)
সন্নিবেশকারী নাম 15 ই

1
@ অন্তর্ভুক্তকারীর নাম এখানে আপনি খুব সহজেই ছেড়ে দিন :-)<s>&nbsp;44&nbsp;</s>
MonkeyZeus

<?=chr(65+sqrt(rand(0,675)));
পেটাহ

8

আর, 40 27 বাইট

LETTERS[sample(26,1,,1:26)]

এটি প্রতিস্থাপন ছাড়াই, ক্রমবর্ধমান সম্ভাবনার সাথে উত্পন্ন সংখ্যাগুলি 1থেকে 26সংখ্যা গ্রহণ করবে Zএবং বড় হাতের অক্ষরের তালিকা থেকে একটি চিঠি প্রদর্শিত হবে যার সূচক এই সংখ্যাটি LETTERS

sampleফাংশনের যুক্তিগুলি হ'ল:

sample(
       26, #How many numbers to generate
        1, #How many numbers to sample
         , #Replacing ? Here, no by default
     1:26, #Weight of probabilities
       )

হ্যাঁ, এটি কাজ করবে না। আমার একটি ক্লিয়ারেস্ট উপায় থাকতে পারে!
ফ্রিডরিক এর

ঠিক আছে, সবসময় কোথাও একটি আস্তরণ থাকবে! '
ফ্রেডেরিক

1
স্থির এবং খাটো - চিত্তাকর্ষক :)
ট্রাইকোপলাক্স

1
টুইটারে বিটিডব্লির চমৎকার চ্যালেঞ্জ!
ফ্রেডেরিক

1
@ অ্যালবার্টম্যাসক্লানস: এটি সত্যিই সম্ভব, তবে এটি ইতিমধ্যে অন্য কারওর উত্তরে করা হয়েছে, তাই আমি "অনুলিপি" করতে চাই না! যা হোক ধন্যবাদ ! ;)
ফ্রেডেরিক

8

> <> , 14 বাইট

lx
;>dd+%'A'+o

> <> একটি টরওয়েডাল 2 ডি ভাষা, এবং পৃথক সম্ভাবনার অংশটি স্বাভাবিকভাবেই ভাষার একমাত্র এলোমেলো উত্সের কারণে ঘটে। এটি অনলাইন চেষ্টা করুন!

সম্পর্কিত আদেশগুলি হ'ল:

[Row 1]
l          Push length of stack
x          Change the instruction pointer direction to one of up/down/left/right
           This gives a 50/50 chance of continuing on the first row (moving
           left/right) or going to the next row (moving up/down, wrapping if up)

[Row 2]
>          Change IP direction to right
dd+%       Take top of stack mod 26 (dd+ = 13+13 = 26)
'A'+       Add 65
o          Output as character
;          Halt

সুতরাং আউটপুট সম্ভাবনাগুলি হ'ল:

A:  1/2^1  + 1/2^27 + 1/2^53 + ... = 33554432 / 67108863 ~ 0.50000000745
B:  1/2^2  + 1/2^28 + 1/2^54 + ... = half of chance for A
C:  1/2^3  + 1/2^29 + 1/2^55 + ... = half of chance for B
...
Z:  1/2^26 + 1/2^52 + 1/2^78 + ... = half of chance for Y

7

পাইথন 2, 58 57 বাইট

from random import*
print chr(int(65+(random()*676)**.5))

ব্যাখ্যা: এটি বিরতিতে একটি এলোমেলো ভাসমান পয়েন্ট সংখ্যা উত্পন্ন [0, 676)করে, বর্গাকার রুট নেয় এবং তারপরে এটি মেঝে করে। তারপরে এটি 65 যোগ করে ("এ" এর আসকি মান), এটিকে একটি চরে রূপান্তর করে এবং মুদ্রণ করে।

এটি প্রতিটি সংখ্যা 0 থেকে 25 এর স্বতন্ত্র সম্ভাবনা দেয়। কেন তা বুঝতে, এটি সম্পর্কে এইভাবে ভাবুন। বর্গমূল এবং মেঝে 0 দিলে কতগুলি সংখ্যা অ-পূর্ণসংখ্যার উপেক্ষা করে? কেবল একটি সংখ্যা হবে (শূন্য)। এর অর্থ শূন্যের সম্ভাবনা রয়েছে 1/676। কতটি সংখ্যা 1 উত্পাদন করবে? 3, 1, 2 এবং 3 হবে This এর অর্থ এটির সম্ভাব্যতা রয়েছে 3/676। একটি 4, 5, 6, 7, বা 8 দিয়ে দু'টি উত্পাদন করা যায়, এটি সম্ভাব্যতা 5 দেয়, একটি তিনটির সম্ভাবনা 7 থাকে etc. ইত্যাদি since থেকে 25 (জেড)।

ফুটো নুনকে ধন্যবাদ 1 বাইট!


chr(int(65+randint(676)**.5))
ফাঁস নুন

1
আপনি করতে পারেন chr(int(65+random()**.5*26))। এটি একই জিনিস বীজগণিতভাবে কারণ 26 == √676। এবং এখন অপারেশনের ক্রম আপনার দিকে রয়েছে
গম উইজার্ড

3
@ ইমনঅলাইভের জন্য অন্য একটি বাইট **2*26বিপরীত বিতরণের জন্য ব্যবহার করা যেতে পারে।
ব্যবহারকারী81655

1
1/random()%26কাজ করা উচিত।
এক্সনর

1
@ এক্সনোর যা মাঝে মাঝে 1/0% 26 দেবে
ট্রাইকোপলাক্স

5

পাওয়ারশেল ভি 2 +, 33 31 বাইট

[char](65..90|%{,$_*$_}|Random)

থেকে একটি সীমার লাগে 65করার 90(অর্থাত, হওয়া ASCII Aকরার Z), একটি লুপের মাধ্যমে পাইপ করুন। প্রতিটি পুনরাবৃত্তি, আমরা সেই সংখ্যার বারের অ্যারে তৈরি করতে কমা-অপারেটরটি ব্যবহার করি। উদাহরণস্বরূপ, এটি s৫ 65গুলি, s 66 66গুলি, s 67 67গুলি ইত্যাদি তৈরি করবে That বড় অ্যারেটি পাইপ করা হয়েছে Get-Randomযা (অভিন্ন পিআরএনজি) একটি উপাদান নির্বাচন করবে। যেহেতু প্রতিটি উপাদানের বিভিন্ন পরিমাণ রয়েছে তাই প্রতিটি চরিত্রের বাছাইয়ের কিছুটা স্বতন্ত্র শতাংশের সম্ভাবনা থাকে। তারপরে আমরা পেরেনগুলিতে এটি encapsulate করি এবং এটি হিসাবে কাস্ট করি char। এটি পাইপলাইনে রেখে গেছে এবং আউটপুট অন্তর্ভুক্ত।

( পোস্ট করার আগেই কয়েকটা বাইট গল্ফ করার জন্য @ লিক্যনুনকে ধন্যবাদ ।: ডি)


সম্ভাবনা

(সামান্য গোলাকার যাতে আমি ormat অপারেটরের Pবিকল্পটি প্রদর্শন করতে -fপারি)

PS C:\Tools\Scripts\golfing> 65..90|%{"$([char]$_): {0:P}"-f($_/2015)}
A: 3.23 %
B: 3.28 %
C: 3.33 %
D: 3.37 %
E: 3.42 %
F: 3.47 %
G: 3.52 %
H: 3.57 %
I: 3.62 %
J: 3.67 %
K: 3.72 %
L: 3.77 %
M: 3.82 %
N: 3.87 %
O: 3.92 %
P: 3.97 %
Q: 4.02 %
R: 4.07 %
S: 4.12 %
T: 4.17 %
U: 4.22 %
V: 4.27 %
W: 4.32 %
X: 4.37 %
Y: 4.42 %
Z: 4.47 %

1
আমি কোনও উত্তর না দিয়েই শুরু করেছিলাম; galআউটপুট তৈরি করার চেষ্টা করেছে ( [char[]]"uz$(gal|out-string)"-cmatch'[a-z]'|random) 50 টি অক্ষর পেয়েছে, তারপরে 48, সংখ্যাগুলিতে স্যুইচ করেছে এবং 42 পেয়েছে, তারপরে 31 এবং সেখানে থামেছে; লিডারবোর্ডের দিকে তাকাল যে এটি আমাকে কোথায় রাখবে। এখানেই. চরিত্র অভিন্ন জন্য চরিত্র। ওয়েলপ, আমি সম্ভবত এটি মারতে পারি না।
টেসেল্ল্যাটিংহেকলার

5

সিজেম, 21 17 12 বাইট

আমাকে 5 বাইট বাঁচানোর জন্য মার্টিন ইন্ডারকে ধন্যবাদ!

নতুন সংস্করণ

'\,:,s_el-mR

এই প্যাটার্ন অনুসরণ স্ট্রিং একটি অ্যারে ফর্ম A, AB, ABC, ইত্যাদি। এটি এটিকে সমতল করে এবং এলোমেলো চরিত্র চয়ন করে। যেহেতু এই স্ট্রিংটিতে 26 এ, 25 বি, 24 সি এবং আরও রয়েছে, তাই প্রতিটি বর্ণের চয়ন হওয়ার আলাদা সম্ভাবনা থাকে।

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

ব্যাখ্যা

'\,          e# Push the range of all characters up to 'Z'
   :,        e# For each one, take the range of all characters up to it
     s       e# Convert the array of ranges to one string
      _el-   e# Subtract the lower case version of the string from itself
             e# This leaves only capital letters in the string
          mR e# Take a random character from it

পুরাতন রুপ

26,:)'[,'A,- .*M*mr0=

স্ট্রিং তৈরি করে স্বতন্ত্র সম্ভাব্যতা পাওয়া যায় যাতে প্রতিটি বর্ণ বর্ণমালায় তার অবস্থানের সাথে সমান সংখ্যক বার উপস্থিত হয়।

26,:)                 e# Push 1, 2, ... 26
     '[,'A,-          e# Push 'A', 'B', ... 'Z'
             .*       e# Vectorize: repeat each letter the corresponding number of times
               M*     e# Join with no separator
                 mr   e# Shuffle the string
                   0= e# Get the first character

5

আর, 23 বাইট

sample(LETTERS,1,,1:26)

কেবল একটি বিল্টিনের একটি চিঠি 'নমুনা'। এটি 1:26হ'ল ভারের ভেক্টর প্রতিটি অক্ষরকে আলাদা সম্ভাবনা দেয়।


1
1:26প্রতিটি চিঠির জন্য ওজনের একটি ভেক্টর
ব্যবহারকারী5957401

এটি এটিকে বৈধ উত্তর দেয়। এটি ব্যাখ্যায় সম্পাদনা করার পক্ষে মূল্যবান যাতে আর এর সাথে পরিচিত না লোকেরা বুঝতে পারে যে এটি কীভাবে কাজ করে।
ট্রাইকপ্লেক্স

1
আমি যাচ্ছি, এবং তখন আমি বুঝতে পেরেছিলাম যে আমার ওপরের লোকটি তার কোডে অনেক একই কাজ করেছে এবং গভীরতার ব্যাখ্যা প্রদান করেছে।
ব্যবহারকারী5957401

এটি ভাল যে আপনি একটি ব্যাখ্যা যুক্ত করেছেন - পৃষ্ঠাগুলিতে সমাধানগুলির ক্রমটি ক্রম হিসাবে প্রদর্শিত হবে ভোটগুলি আসার সাথে সাথে পরিবর্তিত হতে পারে যাতে "উপরের "গুলি পরে নাও হতে পারে।
ট্রাইকোপলাক্স

5

সি, 35 বাইট

এই প্রোগ্রামটি ধরে নেওয়া RAND_MAXহয় (2 ^ 32/2) - 1 এটি ডিফল্টরূপে জিসিসিতে রয়েছে। ফাংশনটি -lmলিঙ্ক করতে পতাকা সহ কম্পাইল করুন sqrt। আউটপুটটি নতুন লাইনের পিছনে ছাড়াই মূলধনী অক্ষরে অক্ষরে লেখা হয় written

f(){putchar(sqrt(rand())/1783+65);}

Ptionচ্ছিকভাবে, যদি RAND_MAX(2 ^ 16/2) - 1 হয়, একটি সংক্ষিপ্ত 32 বাইট সংস্করণ ব্যবহার করা যেতে পারে:

f(){putchar(sqrt(rand())/7+65);}

কেবল মজাদার জন্যই, আমি এমন একটি সংস্করণও তৈরি করেছি যা sqrtফাংশনটি ব্যবহার করে না বা গণিতের পাঠাগারটি অন্তর্ভুক্ত করার প্রয়োজন নেই ( RAND_MAXএটির অবশ্যই একটি (2 ^ 32/2) - 1) থাকতে পারে, তবে এটি দীর্ঘ হওয়া সত্ত্বেও আমার মনে হয়েছিল এটি ছিল বেশ দারুন:

f(){float r=rand()/64+1;putchar((*(int*)&r>>23)-62);}

ব্যাখ্যা

[প্রথম প্রোগ্রাম]

প্রথম দুই ব্যবহার করার জন্য sqrt, ফাংশন কেবল পরিসীমা মানচিত্র [0, RAND_MAX)থেকে [0, 25]বিভাজন মাধ্যমে, এবং তারপর যোগ 65 (হওয়া ASCII Aমান) এটিকে outputting আগে হওয়া ASCII বর্ণমালা সেটিকে নামান।

[দ্বিতীয় প্রোগ্রাম]

দ্বিতীয় প্রোগ্রামটি আরও জটিল কারণ এটি অনুরূপ কৌশল করে তবে sqrtঅপারেটর ছাড়াই । যেহেতু একটি ভাসমান পয়েন্টের এক্সপোজন বিটগুলি একটি পূর্ণসংখ্যা নির্ধারণের পরে স্বয়ংক্রিয়ভাবে গণনা করা হয়, তাই তারা কোনও সংখ্যার বেস 2 লগারিদম পাওয়ার জন্য অশোধিত উপায় হিসাবে কার্যকরভাবে ব্যবহার করা যেতে পারে।

যেহেতু আমরা কেবল RAND_MAX25 টির এনকোডড এক্সপোঞ্জেন্ট মান পর্যন্ত পৌঁছাতে চাইছি তাই গণনা (2 ^ 32/2 - 1) / (2 ^ 25) আমাদের ঠিক প্রায় 64 দেয় যা এটি randমানচিত্রের বিভাগের সময় ব্যবহৃত হয় এই নতুন পরিসীমা। আমি 0 টির ভাসমান পয়েন্টের উপস্থাপনা বরং স্বতন্ত্র এবং এই অ্যালগরিদমকে ভেঙে ফেলতে মানতে 1 যুক্ত করেছি।

এরপরে, বিটশিফটিং এবং এই জাতীয় অন্যান্য ক্রিয়াকলাপের জন্য ভাসাটি টাইপ-পাণ্ডড হয় ger যেহেতু আইইইইই 754 ফ্লোটিং পয়েন্ট সংখ্যাগুলিতে এক্সপোনেন্ট বিটগুলি 30-23 বিট হয়, তাই নম্বরটি 23 ডান বিট স্থানান্তরিত হয়, ম্যান্টিসাটি কেটে দেয় এবং কাঁচা ঘাঁটি মানটি পূর্ণসংখ্যা হিসাবে পড়তে দেয়। মনে রাখবেন যে সাইন বিটটি এক্সপোনেন্ট বিটের বাইরেও রয়েছে, তবে যেহেতু কোনও নেতিবাচকতা কখনই থাকে না এটির মুখোশটি পড়তে হবে না।

পরিবর্তে আমরা ইতিপূর্বে এই ফলাফলটিতে 65 যুক্ত করার পরিবর্তে, ভাসমান পয়েন্টের এক্সটেনশনগুলি 0 থেকে 255 পর্যন্ত স্বাক্ষরিত 8 বিট পূর্ণসংখ্যার হিসাবে প্রতিনিধিত্ব করা হয়, যেখানে 0 এর ব্যয়কারী মান 127 হয় (আসল "স্বাক্ষরিত" এক্সপোশন মানটি পেতে কেবল 127 বিয়োগ করুন) )। যেহেতু 127 - 65 62 হয়, আমরা পরিবর্তে উভয়টিকে 62 এর বিস্তৃত বিন্দু ব্যতিক্রমী পরিসর থেকে এএসসিআইআই বর্ণমালার পরিসরে একত্রিত করে সমস্ত বিয়োগ করতে পারি।

বিতরণ

আমি গণিত বিশেষজ্ঞ নই তাই এই বিতরণের সঠিক সূত্রটি আমি নিশ্চিতভাবে বলতে পারি না, তবে [0, RAND_MAX)এক বর্ণের পরিসীমা শেষ হয়ে যায় এবং অন্যটি শুরু হয় তার মধ্যবর্তী দূরত্ব কখনই হয় না তা দেখানোর জন্য আমি পরিসরের প্রতিটি মান পরীক্ষা করতে পারি (এবং করেছি) একই। (এই পরীক্ষাগুলি নোট করুন (2 ^ 32/2) - 1) এলোমেলো সর্বাধিক)

[প্রথম প্রোগ্রাম]

Letter - Starting Location
A - 0
B - 3179089
C - 12716356
D - 28611801
E - 50865424
F - 79477225
G - 114447204
H - 155775361
I - 203461696
J - 257506209
K - 317908900
L - 384669769
M - 457788816
N - 537266041
O - 623101444
P - 715295025
Q - 813846784
R - 918756721
S - 1030024836
T - 1147651129
U - 1271635600
V - 1401978249
W - 1538679076
X - 1681738081
Y - 1831155264
Z - 1986930625

[দ্বিতীয় প্রোগ্রাম]

Letter - Starting Location
A - 0
B - 64
C - 192
D - 448
E - 960
F - 1984
G - 4032
H - 8128
I - 16320
J - 32704
K - 65472
L - 131008
M - 262080
N - 524224
O - 1048512
P - 2097088
Q - 4194240
R - 8388544
S - 16777152
T - 33554368
U - 67108800
V - 134217664
W - 268435392
X - 536870848
Y - 1073741760
Z - 2147483520

অর্ডিনালটি প্রিন্ট করার চেয়ে এটি ফিরিয়ে দেওয়া কি ছোট হবে না? যেহেতু charসিতে একটি অবিচ্ছেদ্য প্রকার, তাই এটি গ্রহণযোগ্য হওয়া উচিত।
মেগো

@ মেগো ওহ হ্যাঁ আপনি যদি এটি করতে পারেন তবে আমি গল্ফিংয়ের জন্য কেবল নতুন তাই আমি গ্রহণযোগ্য আউটপুট হিসাবে বিবেচিত তার সাথে খুব বেশি পরিচিত না।
লেবু ড্রপ

4

পাইথন 2, 72 বাইট

from random import*
print choice(''.join(i*chr(i)for i in range(65,91)))

চরিত্রটিকে তার ascii মান দ্বারা গুণিত করে, তারপরে ফলাফলটি স্ট্রিং থেকে এলোমেলোভাবে একটি অক্ষর বাছাই করে।

শতাংশে, প্রতিটি অক্ষর নির্বাচিত হওয়ার সম্ভাবনাগুলি এখানে:

A 3.23
B 3.28
C 3.33
D 3.37
E 3.42
F 3.47
G 3.52
H 3.57
I 3.62
J 3.67
K 3.72
L 3.77
M 3.82
N 3.87
O 3.92
P 3.97
Q 4.02
R 4.07
S 4.12
T 4.17
U 4.22
V 4.27
W 4.32
X 4.37
Y 4.42
Z 4.47

এটি ব্যবহার করে দেখুন: https://repl.it/Cm0x


4

জেলি , 5 বাইট

ØAxJX

( ডেনিসের বিদ্যমান জেলি সমাধানের জন্য সমান স্কোর, তবে একটি আলাদা পদ্ধতি ))

প্রতিটি বর্ণের উৎপাদনের সম্ভাবনা হ'ল 351 দ্বারা বিভক্ত বর্ণমালায় এটি 1-ভিত্তিক সূচক - 26 তম ত্রিভুজাকার সংখ্যা:

  • পি ( A) = 1/351, পি ( B) = 2/351, ..., পি ( Z) = 26/351।

যেহেতু 1 + 2 + ... + 26 = 351, পি (চিঠি) = 1।

বাস্তবায়ন:

ØAxJX    - no input taken
ØA       - yield the alphabet: 'ABC...Z'
   J     - yield [1,...,len(Left)]: [1,2,3,...26]
  x      - Left times Right: 'abbccc...zzzzzzzzzzzzzzzzzzzzzzzzzz'
    X    - choose random element from Left

এটি ট্রাইআইটিঅনলাইনে পরীক্ষা করুন বা 100K রানের বিতরণ পান (ডেনিসের কাছে কোড ক্রেডিট)


আপনি জেলিতে এত ভাল হতে কোথায় শিখতেন? আমার বিশ্বাস করা কঠিন যে জেলি পিপিসিজির বাইরে সাধারণ জ্ঞান হবে find
অ্যাডিসন ক্রম্প 21

1
@ সিক্সার আমি কেবল উইকির দিকে তাকিয়ে পালিয়ে গেলাম - এখনও সব পেয়ে যাচ্ছি না :)
জনাথন অ্যালান

1
ঠিক আছে তাহলে. পিপিসিজিতে আপনাকে স্বাগতম, একটি ভোট দিন।
অ্যাডিসন ক্রম্প

3

q, 38 বাইট

বিশেষভাবে সংক্ষিপ্ত নয় তবে ...

.Q.A(reverse 0.9 xexp til 26)binr 1?1f

স্বতন্ত্র संचयी বিতরণ ফাংশনটি হ'ল ক্রম

0.9 ^ 26, 0.9 ^ 25, ..., 0.9 ^ 0

এবং আমরা কেবল বিতরণ থেকে নমুনা।


3

জাভাস্ক্রিপ্ট (ES6), 45 বাইট

_=>(n=Math.random(),10+n*n*26|0).toString(36)

এলোমেলো মান স্কোয়ার করে অ-ইউনিফর্ম বিতরণ অর্জন করে। Math.random()পরিসরের একটি ভাসমান ফেরত দেয় [0,1)যাতে এর স্কোয়ারের ফলাফল 0(বা a) দিকে ঝোঁক দেয় ।

পরীক্ষা


42 বি,(n=Math.random(),10+26*n+n|0).toString(36)
এফেলন ড্যান্টজলার

3

ওরাকল এসকিউএল 11.2, 212 বাইট

সম্ভাব্যতা হিসাবে বর্ণমালায় অক্ষরের অবস্থান ব্যবহার করা

SELECT c FROM(SELECT dbms_random.value(0,351)v FROM DUAL),(SELECT c,e,LAG(e,1,0)OVER(ORDER BY c)s FROM(SELECT CHR(LEVEL+64)c,SUM(LEVEL)OVER(ORDER BY LEVEL)e FROM DUAL CONNECT BY LEVEL<27))WHERE v BETWEEN s AND e;

আন golfed

SELECT c FROM
  (SELECT dbms_random.value(0,351)v FROM DUAL), -- random value
  (
    SELECT c,e,LAG(e,1,0)OVER(ORDER BY c)s -- Mapping each character to its interval 
    FROM   (
             -- Each char has it's position in the alphabet as probability
             SELECT CHR(LEVEL+64)c,SUM(LEVEL)OVER(ORDER BY LEVEL)e 
             FROM   DUAL 
             CONNECT BY LEVEL<27
           )  
  )
WHERE v BETWEEN s AND e -- match the random value to an interval

3

টিআই-বেসিক, 39 বাইট

sub("ABCDEFGHIJKLMNOPQRSTUVWXYZ",int(26^rand),1

rand (0,1] এ অভিন্ন মান উত্পন্ন করে 26 এটি 26 ^ থেকে 1 থেকে 26 এর পূর্ণসংখ্যার সমান হওয়ার আলাদা সম্ভাবনা দেয়।

পুরানো সংস্করণ, 45 বাইট

sub("ABCDEFGHIJKLMNOPQRSTUVWXYZAAA",1+int(4abs(invNorm(rand))),1

টিআই-বেসিক সংখ্যার সীমাবদ্ধ নির্ভুলতা স্বাভাবিক বিতরণকে gene .0 7.02σ (দেখুন randNorm() এর মধ্যে সংখ্যা উত্পন্ন করতে সীমাবদ্ধ করে । সুতরাং আমরা rand 0 এবং σ 1 দিয়ে একটি এলোমেলো সংখ্যার পরম মান পেতে পারি, আগে উল্লিখিত ব্যবহারিক পরিসরটি four ± 28.08σ এর সাথে বাড়ানোর জন্য চারটি দ্বারা গুণ করে σ তারপরে, আমরা মানটি ফ্লোর করি এবং 1 যুক্ত করি, যেহেতু sub(1-সূচকযুক্ত, আমাদের প্রতিটিের বিভিন্ন সম্ভাব্যতা 1-2-2 থেকে পরিসর দেয়।


1
@ থ্রিচোপ্লেক্স এটি আমার ভুল ছিল, আমার পুরানো সংস্করণটি [0,29] থেকে 30 টি ছিল। আমি এখন এটি স্থির।
টিমটেক 12'16

ব্যবধানটি (0,1] হওয়ার কথা [0,1)।
কামোরসো94

@ কামোরসো94 আপনি কি পরীক্ষা করেছেন? : "নোট র্যান্ডম সংখ্যা উৎপাদিত অ্যালগরিদম সুনির্দিষ্ট কারণে সবচেয়ে ছোট সংখ্যা উৎপন্ন করা সম্ভব 0. চেয়ে সামান্য বেশী সংখ্যায় সম্ভব আসলে 1" - থেকে উদ্ধৃত tibasicdev.wikidot.com/rand
Timtech

3

পিএইচপি, 92 84 বাইট

for($i=65,$x=0;$i<91;$a.=str_repeat(chr($i++),$x))$x++;echo substr($a,rand(0,$x),1);

সমস্ত অক্ষরের একটি স্ট্রিং তৈরি করে, আমরা যে লুপটি দিয়েছি তার বার বার পুনরাবৃত্তি করে এবং তারপরে এলোমেলোভাবে সেই স্ট্রিং থেকে একটি চিঠি তুলেছে। বর্ণমালার পরে বর্ণগুলির ফলস্বরূপ উচ্চতর সম্ভাবনা থাকে

বাইট শেভ করার জন্য insertusernamehere ধন্যবাদ

ফলাফল সম্ভাব্যতা (% দ্বারা অর্ডার)

এ => 0.29%
বি => 0.62%
সি => 0.82%
ডি => 1.15%
ই => 1.50%
এফ => 1.65%
জি => 2.00%
এইচ => 2.27%
আই => 2.52%
জে => 2.80%
কে => 3.13%
এল => 3.47%
এম => 3.72%
এন => 3.93%
ও => 4.15%
পি => 4.59%
কিউ => 4.81%
আর => 5.17%
এস => 5.44%
টি => 5.68%
ইউ => 6.06%
ভি => 6.13%
ডাব্লু>> 6.60%
এক্স => 6.95%
ওয়াই => 7.17%
জেড => 7.38%


1
আসলে নিয়ম মেনে চলেছে। আমার ভুল
gabe3886

@ সন্নিবেশকারীর নাম এখানে এবং আমি কোনও অক্ষরের আউটপুট চালানোর সময় আমি অপরিজ্ঞাত পরিবর্তনশীল বিজ্ঞপ্তিগুলি পাই
gabe3886

ওহ আমি দুঃখিত. আমি মনে করি যে আমি বহন করেছি এবং সরিয়েছি $x=0যা স্পষ্টতই প্রয়োজনীয়। এখানে একটি 84 বাইট সংস্করণ: আপনার কোড চালানোর সময় for($i=65,$x=0;$i<91;$a.=str_repeat(chr($i++),$x))$x++;echo substr($a,rand(0,$x),1);আপনি কি কখনও এর চেয়ে বেশি মূল্য অর্জনের ব্যবস্থা করেছিলেন G? যাইহোক, noticeগল্ফ করার সময় আপনি সর্বদা সেটিকে উপেক্ষা করতে পারেন ।
সন্নিবেশকারী

1
আমি করেছি, তবে ক্রপ করতে কিছুটা সময় লাগে। আমি এটি প্রায় 100k পুনরাবৃত্তির মাধ্যমে চেক করতে
দৌড়েছি

strlenএর $a351, কিন্তু আপনি শুধুমাত্র প্রথম আউট একটি র্যান্ডম অক্ষর অবচয় হয় $x(26) অক্ষর। আপনি এটা ঠিক এবং চূড়ান্ত পরিবর্তনের সঙ্গে আপনার সম্ভাব্যতা রাখতে পারবেন না $xকরার 350+ 1 বাইট জন্য। এখানে একটি 77 বাইট সংস্করণ রয়েছে যা সমস্যাটি সমাধান করে তবে সম্ভাব্যতাগুলিকে আরও কাছাকাছি নিয়ে আসে:for($i=65;$i<91;$a.=str_repeat(chr($i),$i++));echo substr($a,rand(0,2014),1);
জো।

3

বেফুঞ্জ, 168 164 বাইট

প্রথমটির তুলনায় আরও কমপ্যাক্ট, কিছুটা আলাদা সম্ভাবনা রয়েছে: প্রথমটিতে "প্রথম চেষ্টা" এ এ মুদ্রণের ?একটি 1/4 সুযোগ, একই জায়গায় ফিরে আসার 2/4 সুযোগ ?এবং 1/4 এ স্থানান্তরিত হওয়ার সুযোগ রয়েছে পরবর্তী. বাকি ?গুলি প্রতিটি আছে 1/4 তাদের নীচে চিঠি মুদ্রণ সম্ভাবনা, 1/4 , আবার চেষ্টা করার 1/4 পরবর্তী চিঠি চলমান, 1/4 পূর্ববর্তী চলন্ত। আবার একটি এ মুদ্রণের সম্ভাবনা জেড প্রিন্ট করার চেয়ে অনেক বেশি is

??????????????????????????>
""""""""""""""""""""""""""
ABCDEFGHIJKLMNOPQRSTUVWXYZ
""""""""""""""""""""""""""
>>>>>>>>>>>>>>>>>>>>>>>>>>,@
##########################

বেফুঞ্জ, 186 বাইট

অবশ্যই এটি দিয়ে জিততে পারে না তবে আমি মনে করি এটি তবুও এটি একটি আকর্ষণীয় উত্তর :)

vএবং >কার্সারকে যথাক্রমে নীচে এবং ডান দিকে চালিত করে। ?অপারেটর এলোমেলোভাবে চার দিকনির্দেশ এক বন্ধ কার্সার পাঠায়। প্রথম ?দ্বারা "অবরুদ্ধ" হয় vএবং >দুই নির্দেশাবলী মধ্যে তাই এটি মাত্র দুটি পথে যেতে রয়েছে: হয় বা পরের নিচে একটি মুদ্রণ করার জন্য ?। সুতরাং প্রথম ?একা থেকে একটি এ প্রিন্ট করার 50% সম্ভাবনা রয়েছে

পরবর্তী ?একটি আছে 1/3 একটি বি, মুদ্রণ সম্ভাবনা 1/3 যাচ্ছে ব্যাক আপ, এবং 1/3 আরও নিচে যাচ্ছে। ইত্যাদি ইত্যাদি

এটি একেবারে সুস্পষ্ট হওয়া উচিত যে উচ্চতর বর্ণগুলি নিম্নের চেয়ে মুদ্রিত হওয়ার অনেক বেশি সম্ভাবনা রয়েছে তবে প্রতিটি অক্ষরের সম্ভাবনা কী তা আমি ঠিক নিশ্চিত নই।

সঠিক গণিতে সাহায্যের জন্য কিছু প্রশংসা করা হবে :)

কমপক্ষে একটি 1/2 * 1/3 ^ 25 সম্ভাবনা রয়েছে যে প্রথমবারের মতো কার্সারটি জেডের দিকে সমস্ত প্রান্তে চলে যায়, তবে আমি নিশ্চিত নই যে প্রতিটি বর্ণগুলিতে কার্সারটি কীভাবে উপরে ও নিচে নেমে যায়।

,@ মুদ্রণ এবং প্রস্থান।

 v
>?"A"v
>?"B"v
>?"C"v
>?"D"v
>?"E"v
>?"F"v
>?"G"v
>?"H"v
>?"I"v
>?"J"v
>?"K"v
>?"L"v
>?"M"v
>?"N"v
>?"O"v
>?"P"v
>?"Q"v
>?"R"v
>?"S"v
>?"T"v
>?"U"v
>?"V"v
>?"W"v
>?"X"v
>?"Y"v
>?"Z">,@


2

zsh, 63 বাইট

for i in {A..Z};for j in {1..$[#i]};s+=$i;echo $s[RANDOM%$#s+1]

এটি এই স্ট্রিং তৈরি করে কাজ করে:

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ

ওরফে 65 বার এ, 66 বার বি, 67 বার সি ...

এবং তারপরে এটি এতে একটি এলোমেলো চরিত্র চয়ন করে


কেন আপনি 65 এ শুরু করবেন?
gcampbell

1
@gcampbell 65 আস্কিতে রয়েছে A। আপনি 1 থেকে শুরু করতে পারেন, তবে তারপরে অভ্যন্তরীণ লুপটি হয়ে যায় {65..$[#i]}যা 1 চরের দীর্ঘ হয়
izabera


2

ব্যাচ, 116 বাইট

@set/ar=%random%%%676,s=r/26,r%%=26,s-=(r-s)*(r-s^>^>31)
@set a=ABCDEFGHIJKLMNOPQRSTUVWXYZ
@call echo %%a:~%s%,1%%

দুটি এলোমেলো ভেরিয়েবলের বৃহত্তর বা ছোট (আমি যা ভুলে যাই) বাছাই করে কাজ করে।


2

মতলব, 22

প্রায়শই প্রারম্ভিক চিঠিগুলি ফিরে আসবে তবে তাত্ত্বিকভাবে সেগুলি সমস্ত ছুঁতে পারে!

এটিকে একটি এলোমেলো সংখ্যায় বিভক্ত করে এটিকে ২ 26-এ সীমাবদ্ধ করে এবং এটি একটি চরিত্রে পরিণত করে।

['' 96+min(1/rand,26)]

খুব কমই নয়, তবে সম্ভবত ধারণাটি অন্যান্য উত্তরগুলিকে অনুপ্রাণিত করতে পারে।


না rand[0, 1) একটি মান? এটি শূন্য সহ তবে একটিও অন্তর্ভুক্ত নয়। যদি এর মাঝে মাঝে 1/0-এ ফলাফল হয় তবে min(1/0,26)এখনও 26 টি ফিরে আসবে, বা ত্রুটি?
ট্রাইকোপলাক্স

যতদূর আমি জানি rand(0,1) এর মধ্যে একটি মান ফেরত দেয়, তাই কোনও সমস্যা হওয়া উচিত নয়
পল.ওডারস

1
@trichoplax যদিও আপনি দেখতে পাবেন না rand0 ফিরে বাস্তবে, min(1/0,26)আসলে 26. ফেরৎ
ডেনিস Jaheruddin


2

সিজেম, 10 বাইট

সিজেএম পদ্ধতির # 3 ...

26mr)mr'A+

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

এই অবিশেষে র্যান্ডম সংখ্যা তৈরি করে x1 এবং 26 মধ্যে এবং তারপর মধ্যে যে একটি অবিশেষ এলোপাথারি সংখ্যা তৈরি করতে ব্যবহার 0এবং x-1যা যোগ করা হয় A। এই পক্ষপাতিত্বগুলি ছোট অক্ষরের দিকে ফলাফল দেয়।


2

ল্যাবরেথ , 19 বাইট

__v6%_65+.@
" )
"^2

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

এটি এমন একটি লুপ যা প্রতিটি পুনরাবৃত্তির সময় হয় ক) শূন্য বা খ থেকে শুরু হওয়া কাউন্টারকে বাড়িয়ে দেয়) সম্ভাব্যতা 50% সহ উভয়ই সমাপ্ত হয়। লুপের শেষে, কাউন্টারটি মডিউল 26 নেওয়া হয় এবং 65 এর সাথে যুক্ত হয় Aএবং এর মধ্যে একটি চিঠি দেয় Z

এটি Aকেবলমাত্র 50% এর Bউপরে কিছুটা, 25% এর Zকিছুটা বেশি এবং আরও 1/2 26 এর চেয়ে কিছুটা বেশি করার সম্ভাবনা দেয় । তাত্ত্বিকভাবে, চিরকালের জন্য এটি চলার সম্ভাবনা রয়েছে, তবে এই ইভেন্টটির সম্ভাব্যতা শূন্য রয়েছে চ্যালেঞ্জের দ্বারা প্রয়োজনীয় হিসাবে (বাস্তবে এটি সম্ভবত সম্ভব নয় কারণ পিআরএনজি তার সময়কালের কোনও পর্যায়ে উভয় সম্ভাব্য ফলাফল ফিরিয়ে দেবে)।

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