পাওয়ারবল নম্বর চয়ন করুন!


34

পাওয়ারবল হ'ল একটি আমেরিকান লটারি যা সম্প্রতি দৃষ্টি আকর্ষণ করেছে কারণ বর্তমান জ্যাকপট (জানুয়ারী 11, 2016 হিসাবে) ইতিহাসের বৃহত্তম লোটো পুরষ্কার , প্রায় $ 1.5 বিলিয়ন ( মার্কিন ডলার )।

পাওয়ারবল খেলোয়াড়গণ num৯ নম্বরযুক্ত সাদা বল থেকে ৫ টি স্বতন্ত্র সংখ্যা এবং ২ num টি সংখ্যাযুক্ত লাল বল থেকে 1 টি "পাওয়ারবল" নম্বর চয়ন করেন। যদি তাদের পাঁচটি সাদা বলের পছন্দ কোনও ক্রমের সাথে আঁকায়, এবং যদি তারা সঠিক "পাওয়ারবল" নম্বর পছন্দ করে তবে তারা জ্যাকপটটি জিতবে

সুতরাং জ্যাকপট জেতার সম্ভাবনাগুলি 1 (69 choose 5)*(26 choose 1)বা এর মধ্যে 1 ((69*68*67*66*65)/(5*4*3*2*1))*26, যা 292,201,338 এ 1

জানুয়ারী 9, 2016-এ সাম্প্রতিক অঙ্কনে কেউ জ্যাকপট জিতেনি , তবে সম্ভবত কেউ আগামী অঙ্কনটি 13 জানুয়ারী, 2016, রাত 10:59 ইটি তে জিতবে।

চ্যালেঞ্জ

এমন একটি প্রোগ্রাম বা ফাংশন লিখুন যা পাওয়ারবল অঙ্কনকে অনুকরণ করে কোনও ইনপুট না নিয়ে 5 থেকে পৃথক এলোমেলো সংখ্যা 1 থেকে 69 সমেতকে আউটপুট করে এবং তারপরে 1 থেকে 26 সমেত একটি র্যান্ডম "পাওয়ারবল" নম্বর (যা 5 টির মধ্যে একটির পুনরাবৃত্তি হতে পারে) প্রাথমিক সংখ্যা)।

"পাওয়ারবল" নম্বরটি সর্বদা আউটপুটে সর্বশেষ সংখ্যা হওয়া উচিত, তবে অন্যথায় প্রথম 5 সংখ্যার ক্রম কোনও ব্যাপার না।

Numbers সংখ্যাটি দশমিক ক্ষেত্রে আউটপুট হওয়া উচিত , স্থান পৃথক করা বা নতুন লাইন পৃথক, ,চ্ছিক একক ট্রেলিং নিউলাইন সহ। আউটপুটে কমা, বন্ধনী এবং অন্যান্য অক্ষর অনুমোদিত নয়।

সুতরাং এগুলি বৈধ আউটপুট হবে ( শেষ অঙ্কন থেকে নম্বরগুলি ব্যবহার করে ):

32 16 19 57 34 13
32
16
19
57
34
13

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

পাইথন 2 বা 3 এ কাজ করে এমন একটি অদ্বিতীয় রেফারেন্স বাস্তবায়ন এখানে দেওয়া হয়েছে:

import random
print(' '.join(map(str, random.sample(range(1,70), 5) + [random.randint(1, 26)])))

বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জয়ী।


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


12
জয়ের অংশীদার হওয়ার দাবি মিস করার সুযোগটি এখানে কেউ যেন জ্যাকপট পান।
অ্যালেক্স এ।

5 নম্বরটি কি ক্রমযুক্ত হতে হবে?
নিল

@ নীল "" পাওয়ারবল "নম্বরটি সর্বদা আউটপুটটিতে সর্বশেষ সংখ্যা হওয়া উচিত, তবে অন্যথায় প্রথম 5 সংখ্যার ক্রম কোনও বিবেচনা করে না" "
ক্যালভিনের শখ

3
আমি নিশ্চিত যে কেউ বিভ্রান্ত নয়, তবে আপনি আসলে চ্যালেঞ্জের পূর্ণসংখ্যার অর্থ ।
jpmc26

1
@ কানাডিয়ানলুক প্রথম 5 সংখ্যার ক্রমটি বিবেচনা করে না। আছে 5! = 5*4*3*2*1, 5 জিনিষ ব্যবস্থা সুতরাং আপনি যে আউট বিবেচনার উপায়ে।
ক্যালভিনের

উত্তর:


29

ডায়ালগ এপিএল, 10 বাইট

(5?69),?26

ডায়াডিক ?হ'ল 1 স্বতন্ত্র এলোমেলো সংখ্যা [1, ⍵] এবং মোনাদিক ?হ'ল একক র্যান্ডম সংখ্যা।

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


জেতে প্রায় অভিন্ন আপনি 0 ভিত্তিক সূচক: কারণ 1 যোগ করতে হবে বাদে 1+(5?69),?26
এলোমেলো

13

সিজেম, 16 বাইট

69,mr5<26mr+:)S*
69,   range(69)
mr    shuffle the generated array
5<    first 5 elements
26mr  random number 0..25
+     concat to array
:)    increment each array element
S*    join with spaces

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


1
আমি পছন্দ করি কীভাবে :)জিনিসগুলি কিছুটা বড় করে তোলে, যেমন কোনও অচেনা লোকের হাসি আপনাকে কীভাবে খানিকটা সুখী করে তুলতে পারে।
ফান্ড মনিকার লসুইট

1
আমি মনে করি আমি :)লটারি জিতলে আমি সুন্দর হয়ে উঠতাম। +1
আর্কটরাস

9

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

69 5Zr26Yr

ব্যবহার বর্তমান সংস্করণ (9.2.0) ভাষা / কম্পাইলার করুন।

উদাহরণ

সংকলক সহ মতলব চালানো:

>> matl
 > 69 5Zr26Yr
 > 
66
59
64
56
29
12

সংকলক অষ্টাভে চালিত সহ:

>> matl
 > 69 5Zr26Yr
 >
2 69 41 44 23
22

প্রথম পাঁচটি নম্বর নিউলাইনে নয়, স্থান দ্বারা পৃথক করা হয়েছে। এটি অক্টাভের অন্তর্নিহিত randsampleফাংশনটি মাতলাবের (এবং সংকলকের নতুন সংস্করণে সংশোধন করা হয়েছে) থেকে আলাদা আচরণ করার কারণে । যাইহোক, নিউলাইন এবং স্পেস উভয়ই চ্যালেঞ্জের দ্বারা অনুমোদিত।

সম্পাদনা (4 এপ্রিল, 2016) : এটি অনলাইনে চেষ্টা করুন!

ব্যাখ্যা

69 5Zr    % randsample(69,5), without replacement by default. Gives a 5x1 column vector
26Yr      % randi(26). Gives single number
          % implicit display

প্রাসঙ্গিক মতলব ফাংশন দেখুন: randsampleএবং randi


7

রুবি, 33 32

p *[*1..69].sample(5),rand(26)+1

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


আপনি কি প্রথম বন্ধনী প্রয়োজন নিশ্চিত? আমি মনে করি আপনি দশটি ফেলে রেখে এবং পি এবং * এর মধ্যে একটি স্থান রেখে আপনি একটি বাইট ছাঁটাই করতে পারেন। আমি এখন চেক করছি। সম্পাদনা: পরীক্ষিত এবং AFAICT এটি কাজ করে।
তহবিল মনিকার লসুইট

হা, এটি, আপনাকে ধন্যবাদ। আমি একটি আইআরবি উদাহরণে পরীক্ষা করে যাচ্ছিলাম যেখানে আমি এমন কোনও সময় নির্ধারিত হয়েছি p, যা আসলে সেই সংস্করণের জন্য বাক্য গঠনটি ভেঙে দেয়।
হিস্টোক্র্যাট

6

আর, 30 29 বাইট

cat((s=sample)(69,5),s(26,1))

sampleফাংশন ইনপুট থেকে সহজ র্যান্ডম স্যাম্পলিং সম্পাদন করে। প্রথম আর্গুমেন্ট হিসাবে যদি একটি একক পূর্ণসংখ্যা দেওয়া হয় তবে 1 থেকে আর্গুমেন্টে নমুনা দেওয়া হয়। নমুনা আকার দ্বিতীয় যুক্তি। আমরা প্রতিস্থাপন ছাড়াই স্যাম্পলিংয়ের ডিফল্ট বিকল্পটি নিয়োগ করছি।

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


আপনি এর cপরিবর্তে দুটি পুরো বাইট সংরক্ষণ করতে পারেনcat
ডিন ম্যাকগ্রিগোর

@ ডিয়ানম্যাকগ্রিগোর এই পরামর্শের জন্য ধন্যবাদ, তবে এখানে জমা দেওয়া অবশ্যই হয় পুরো প্রোগ্রাম যা STDOUT এ লিখবে বা এমন ফাংশন যা কোনও মান ফেরায়। এক্ষেত্রে আমি প্রাক্তনকে বেছে নিয়েছি। যদি আমি ব্যবহার করি cতবে এটি কেবলমাত্র একটি স্নিপেট হবে, যা ডিফল্টরূপে অনুমোদিত নয়।
অ্যালেক্স এ

ওহহ আচ্ছা. আমি অভিলাষী গল্ফার না তাই এর সাথে আমার পরিচিত ছিল না।
ডিন ম্যাকগ্রিগোর

@ ডিয়ানম্যাকগ্রিগোর কোনও সমস্যা নেই। পরামর্শের জন্য যাইহোক ধন্যবাদ। :)
অ্যালেক্স এ

6

পাইথন 3.5, 63 বাইট

from random import*
print(*sample(range(1,70),5),randint(1,26))

এটি মূলত রেফারেন্সের প্রয়োগ বাস্তবায়িত হয়। নোট করুন যে একটি অ-শেষ যুক্তিতে স্প্লিট করার জন্য 3.5 প্রয়োজনীয়।


6

অক্টাভা, 35 32 বাইট

ক্যালভিনের শখগুলি নিশ্চিত করেছে যে ans =কোনও ফাংশন ব্যবহার করার সময় এটি ঠিক ছিল, তাই:

@()[randperm(69)(1:5),randi(26)]

এটি মেমিংয়ের উত্তরের সাথে সাদৃশ্য রয়েছে তবে এটি অক্টেভেতে কেবল সম্ভব সূচক সূচক ব্যবহার করে, এবং এটি 5 by বাইট সংক্ষিপ্ত হয়, তাই আমি বুঝতে পেরেছিলাম এটি যেভাবে পোস্ট করা উপযুক্ত।

randperm(69)1-69 সংখ্যার এলোমেলো ক্রমানুসারে একটি তালিকা তৈরি করে। কেবলমাত্র প্রথম 5 নম্বর পেতে এই তালিকাটি সরাসরি সূচীকরণ (এমএটিএলবিএতে সম্ভব নয়) করা সম্ভব (1;5)। তালিকাটি অনুসরণ করে randi(26)যার পরে 1 এবং 26 এর মধ্যে একটি একক সংখ্যা প্রদান করে।

পুরানো:

disp([randperm(69)(1:5),randi(26)])

ফলাফলের তালিকাটি ব্যবহার করে প্রদর্শিত হয় disp


6

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

1..69|Random -c 5;Random 27

Get-Randomভি 1-তে উপস্থিত ছিল না হিসাবে সংস্করণ 2 বা আরও নতুন প্রয়োজন হয় (এটি অন্তর্ভুক্ত Get-, এবং -Maximumঅবস্থানগত)। আউটপুট নিউলাইন পৃথক।

Ungolfed:

Get-Random -InputObject (1..69) -Count 5
Get-Random -Maximum 27

Random -ma 27শুধু যেতে পারে Random 27যেমন -Maximumঅবস্থান 0 দ্বারা মেলানো হয়
ম্যাট

@ ম্যাট ধন্যবাদ - আমি তা ভুলে গেছি
অ্যাডমবর্কবার্ক


4

ম্যাটল্যাব, 40

x=randperm(69);disp([x(1:5) randi(26)])

আমি জানি. এটি বিরক্তিকর সমাধান।


4

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

<?foreach(array_rand(range(1,69),5)as$k)echo$k+1," ";echo rand(1,26);

খুব সোজা এগিয়ে উত্তর। একটি 1-69 উত্পন্ন করুন range, তারপরে array_randঅ্যারে থেকে 5 টি এলোমেলো কী দখল করতে ব্যবহার করুন, এবং $k+1মানটি (0-indexed) প্রতিধ্বনিত করুন, তারপরে 1-26 থেকে একটি এলোমেলো ইন্টো প্রতিধ্বনিত করুন।


4

সি #, 153 বাইট 140 বাইট

"ম্যাককে" ধন্যবাদ:

string.Join(" ",Enumerable.Range(1,69).OrderBy(e=>Guid.NewGuid()).Take(5).Concat(Enumerable.Range(1,26).OrderBy(e=>Guid.NewGuid()).Take(1)))

153 বাইট সমাধান:

string.Join(" ",Enumerable.Range(1,69).OrderBy(e=>Guid.NewGuid()).Take(5))+" "+string.Join(" ",Enumerable.Range(1,26).OrderBy(e=>Guid.NewGuid()).Take(1))

লিনক ব্যবহার করে জিইউইডি ব্যবহার করে সহজ সমাধান।


1
পাওয়ারবল নম্বর অংশে স্ট্রিংয়ের দরকার নেই এবং আপনি
ডেলিগেটের

এবং যদি আপনি স্ট্রিং কনটেনটেশনের পরিবর্তে সিকোয়েন্সগুলি একত্রিত করেন, আপনার স্পেস 3 বার নির্দিষ্ট করার দরকার নেই, এটি আরও কার্যকর হবে। যেমনstring.Join(" ", ....take(5).Concat(....Take(1)))
ম্যাককে

4

পাইথ - 13 14 13 বাইট

প্রধান গল্ফিং সম্ভব, এটি কেবল একটি FGITW ছিল।

jb>5.SS69hO26

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


আপনি কোডটি ব্যাখ্যা করতে পারেন যাতে এটি সত্যই অভিন্ন কিনা তা খতিয়ে দেখা যায়?
মাসক্লিনস

আপনি এই পরিবর্তন করতে <... 5পারেন >5...। চূড়ান্ত কোডjb>5.SS69hO26
নীল

2

ব্র্যাচল্যাগ , 40 বাইট

1:5e,68{I`random(I)+1=Z`Z=w,"
"w}\;25:1&

ব্যাখ্যা

Brachylog একটি বিল্ট-ইন র্যান্ডম সংখ্যার জন্য আছে না (এখনও ...) তাই আমরা জন্য একটি SWI-Prolog সম্পৃক্ত ব্যবহার করতে হবে: random/1। আমরা ব্যাককোটিস ব্যবহার করে ব্র্যাচল্যাজে এসডাব্লুআই-প্রোলোগ কোড ইনপুট করতে পারি।

1:5e,                             \  § Enumerate from 1 to 5 using \ (backtrack), which
                                     § evaluates to false and thus constructs a loop

     68{                         }   § Declare sub-predicate 1 and call it with 68 as input

        I`random(I)+1=Z`             § Z is the arithmetic expression 'random(I) + 1' where
                                     § I is the input of the sub-predicate

                        Z=w,         § Evaluate Z and write it
                            "\n"w    § Write a new line

;                                    § Else (we will reach this after the 5th iteration of
                                     § the enumeration, since \ is always false)

25:1&                                § Call the sub-predicate 1 with 25 as input

2

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

F=(s=new Set,r=Math.random)=>s.size<5?F(s.add(r()*69+1|0)):[...s,r()*26|0+1].join` `

যেহেতু আমরা জাভাস্ক্রিপ্টে অনন্যভাবে র্যান্ডমকে নমুনা করতে পারি না, তাই এটি একটি সেট তৈরি করে কাজ করে (যা কেবলমাত্র অনন্য মান রাখে), র্যান্ডম (1-69) যোগ না করে যতক্ষণ না 5 টি অনন্য থাকে, একটি এলোমেলো সংখ্যার (1-26) যুক্ত করে, তারপরে যোগদান এবং এটি সমস্ত ফিরিয়ে দেওয়া।


2

এলিক্সির , 83 বাইট

Enum.reduce Enum.take_random(1..69,5)++[Enum.random(1..26)],fn(x,a)->"#{a} #{x}"end

যখন ঠিক IO.puts একটি অ্যারের পূর্ণসংখ্যার ইঙ্গিত করা হয়, এলিক্সির পূর্ণসংখ্যাগুলি অক্ষর হিসাবে ব্যাখ্যা করে এবং তাই পছন্দসই পাওয়ারবল সংখ্যার পরিবর্তে কিছু স্ট্রিং আউটপুট দেয়। সুতরাং, আমাদের একটি স্ট্রিংয়ের মধ্যে পূর্ণসংখ্যা অ্যারে হ্রাস করতে হবে।


2

রুবি, 47 43 39 বাইট

puts *(1..69).to_a.sample(5),rand(26)+1

আমি মনে করি এটি আরও গল্ফ করা যেতে পারে, তবে আমি এই কোডটি দেখতে কত সুন্দর দেখছি তার প্রশংসা করার পরে আমি এটিতে কাজ করব।

এটি অন্য সমস্ত কিছুর মতো একইভাবে কাজ করে: 1 থেকে 69 সংখ্যার একটি অ্যারে নিন, তাদের এলোমেলো করুন, প্রথম পাঁচটি পান, আউটপুট নিন এবং তারপরে 1 এবং 26 এর মধ্যে একটি এলোমেলো সংখ্যা আউটপুট করুন।

এটি পোস্ট করার আগে আমি কয়েকটি পুনরাবৃত্তি পেরিয়েছি:

puts (1..69).to_a.shuffle.first(5).join(' ')+" #{rand(26)+1}"  #61
puts (1..69).to_a.shuffle[0..5].join(' ')+" #{rand(26)+1}"     #58
puts (1..69).to_a.shuffle[0..5].join('<newline>'),rand(26)+1   #52
puts *('1'..'69').to_a.shuffle[0..5],rand(26)+1                #47
puts *('1'..'69').to_a.sample(5),rand(26)+1                    #43

(কোথায় <newline> আসল নিউলাইন দিয়ে প্রতিস্থাপন করা হয়েছে)

সম্পাদনা: ওফফ, পূর্ববর্তী রুবি উত্তরটি দেখেনি। আমি হোঁচট sampleখেয়েছি এবং আমার উত্তর সম্পাদনা করতে নীচে স্ক্রোল করছি, তবে আমি এটি দেখেছি ... ওহ ভাল। আমার চূড়ান্ত স্কোরটি 43 বাইট, তবে আমি কতটা ভাল করতে পারি তা দেখার জন্য আমি একটু গল্ফ করতে থাকব।


2

গণিত, 64 বাইট

StringRiffle@Append[Range@69~RandomSample~5,RandomInteger@25+1]&

খুবই সাধারণ.


আউটপুটটিতে বন্ধনী এবং কমা রয়েছে।
চার্লস

-১ উপরোক্ত কারণে অবৈধ
ক্যালকুলেটরফলাইন


@ ক্যাটস আরেফ্লুফি আসলে এইবার ঠিক করা হয়েছে।
সবেমাত্র

আমি মনে করি আপনি কেবলমাত্র রেঞ্জ / র্যান্ডমস্যাম্পল ব্যবহার করলে এবং এটিকে র্যান্ডমইন্টিজার ব্যবহার না করে দুটি তালিকার উপরে স্থানান্তরিত করলে আপনি এটি সংক্ষিপ্ত করতে পারবেন I র‌্যান্ডমস্যাম্পলের মতো কিছু [রেঞ্জ [# 1], # 2] & দর্শন {{69,5}, {26,1}}]
জ্যান্সারহাল

1

পার্ল 5, 59 বাইট

{say for(sort{-1+2*int rand 2}1..69)[0..5];say$==1+rand 25}

এটি একটি সাবরুটিন; এটি হিসাবে ব্যবহার করুন:

perl -M5.010 -e'sub f{...}f'

আপনি-E-M5.010 -e
andlrc

আপনি প্রতিস্থাপন করতে পারেন Cant -1+2*int rand 2সঙ্গে rand>.5?1:-1?
andlrc

আর আপনি প্রতিস্থাপন দ্বারা অন্য কয়েক সংরক্ষণ করতে সক্ষম হওয়া উচিত ;say$==সঙ্গে,$==
andlrc

@ দেব-নাল ধন্যবাদ! -M5.010যাহাই হউক না কেন যায় না তাই আমি এটা কাটছাঁট বিরক্ত করে নি। আমি মনে করি আমি অন্যটির পরিবর্তে কমা চেষ্টা করেছি sayএবং এটি কার্যকর হয়নি। তবে নতুন সাজানোর নিয়মটি একটি ভাল ধারণা, ধন্যবাদ। আমি এটি পরীক্ষা যখন আমি একটি সুযোগ এবং এটা সম্পাদন করা হবে।
msh210

1

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

<?=join(' ',array_rand(array_flip(range(1,69)),5))." ".rand()%26;

এই পৃষ্ঠায় অন্যান্য পিএইচপি উত্তর ধন্যবাদ। আমি নিজেই একটি প্রোগ্রাম লিখেছিলাম, এবং এটি স্যামসকাঞ্চের লেখা একটির মতো একই উত্তর হতে পেরেছিল, যা আমাকে কয়েকটা বাইট সংরক্ষণের জন্য আরও এক ধাপ এগিয়ে নিয়ে যেতে বাধ্য করেছিল।

যদি কেউ এখানে অন্য একটি অ্যারে সংযোজন করার উপায় খুঁজে বের করতে পারে যে এটি আমার পরে পাওয়ারবল নম্বরটিতে যোগ দিতে 5 বাইটের চেয়ে কম হয় তবে আমি এটির প্রশংসা করব, কারণ এটি আমাকে বাদাম চালিয়ে যাচ্ছে! আমি যে সেরাটি সামনে আসতে পেরেছিলাম তা হ'ল তার array_randআগে এবং তার আগে join, যেমনটি ছিল এমন কিছু বক্তব্য ছিল +[5=>rand()%25], তবে এটি পরে এটির উপর মনোনিবেশ করা একটি অতিরিক্ত বাইট।

<?=                                                              // This represents an inline 'echo' statement
                                  range(1,69)                    // Get an array of all numbers from 1 to 69 inclusive
                       array_flip(           )                   // Swap the keys and values.
            array_rand(                       ,5)                // Get a random subset of five keys.
   join(' ',                                     ).rand()%26     // Concatenate the array with spaces, along with the powerball number

কমান্ড লাইনের মাধ্যমে এটি চালান। নমুনা:

C:\(filepath)>php powerball.php

আউটপুট:

 12 24 33 67 69 4

1

প্যারি / জিপি, 71 70 বাইট

apply(n->print(n),numtoperm(69,random(69!))[1..5]);print(random(26)+1)

এটি [১..6.৯] এর এলোমেলোভাবে অনুগতি তৈরি করে, তারপরে প্রথম ৫ গ্রহণ করে।

দুর্ভাগ্যক্রমে এটি এলোমেলোতার জন্য অদক্ষ ব্যবহারকারী, 3.5-এর তথ্য-তাত্ত্বিক আদর্শের তুলনায় গড়ে 87 বাইট ইন্ট্রপি খরচ করে। এটি কেবলমাত্র প্রথম 5 সদস্যের পরিবর্তে পুরো ক্রমানুভূত উত্পন্ন হওয়ার কারণে এবং পার্সগুলি অর্ডার করার কারণে (এলজি 5! = ~ 7 বিট হারাতে) হয়। আরও, randomপাটিগণিত কোডিং ব্যবহার না করে একটি প্রত্যাখ্যান কৌশল ব্যবহার করে। (এটি কারণ প্যারিটি ব্রেন্টের জর্জেন ব্যবহার করে, এটি এত দ্রুত যে আরও জটিল কৌশল থেকে ওভারহেড খুব কমই কার্যকর হয়))

তিনটি 'সুস্পষ্ট' পরিবর্তন রয়েছে যা জিপি-র বর্তমান (২.৮.০) সংস্করণে কাজ করে না। randomএবং printভেরিয়েবলে সংরক্ষণ করা printযেতে পারে এবং বেনামে ->ফাংশন না দিয়ে সরাসরি কল করা যেতে পারে :

r=random;apply(p=print,numtoperm(69,r(69!))[1..5]);p(r(26)+1)

একসাথে এই 9 বাইট সংরক্ষণ করতে হবে। দুর্ভাগ্যক্রমে উভয় ফাংশন যুক্তি ছাড়াই বৈধ, এবং তাই সংরক্ষণের পরিবর্তে তাত্ক্ষণিকভাবে মূল্যায়ন করা হয়, সুতরাং এগুলি পছন্দসই আউটপুট গণনা করে না।


0

ইন্টেল x86 মেশিন কোড, 85 বাইট

¿I ±‰ø1Ò»E ÷óB‰Ðè+ ‰þÑç÷ƒÇþÉ„Éuâ‰ø1Ò» ÷óB‰Ðè
 0ä͸ ͱëÆÔ
00†Äˆã´ÍˆØÍ° ÍÃ

ভাল এটি কখনও কখনও একই সংখ্যা মুদ্রণ করে যদি তাই হয়, একটি কী টিপে আবার চেষ্টা করুন।

এর সাথে সংকলন:

nasm file.asm -o file.bin

এটি কোনও ভিএম এ মাউন্ট করার জন্য এটি ফ্লপি আকারে (শেষে জিরো যুক্ত করুন) এটিকে সারিবদ্ধ করার বিষয়টি নিশ্চিত করুন (এটির জন্য কোনও অপারেটিং সিস্টেমের প্রয়োজন নেই)।

disassembly:

BITS 16
ORG 0x7c00

mov di,73 ;starting seed
mov cl,5 ;we need five numbers

loop:

mov ax,di

xor dx,dx
mov bx,69
div bx
inc dx
mov ax,dx

call print_rnd_number

mov si,di
shl di,1
add di,si
add di,7

dec cl

test cl,cl
jne loop

mov ax,di

xor dx,dx
mov bx,26
div bx
inc dx
mov ax,dx

call print_rnd_number

xor ah,ah
int 0x16
mov ax,0x0002
int 0x10
mov cl,5
jmp loop

print_rnd_number:
aam
add ax,0x3030
xchg al,ah
mov bl,ah
mov ah,0x0E
int 0x10
mov al,bl
int 0x10
mov al,' '
int 0x10
ret

6
প্রোগ্রামিং ধাঁধা এবং কোড গল্ফ স্বাগতম! মেশিন কোড দেখা সর্বদা চিত্তাকর্ষক, তবে যদি এটি উপলক্ষে বারবার সংখ্যা প্রিন্ট করে তবে আমি ভয় করি যে আপনার জমাটি অবৈধ।
ডেনিস

1
হ্যাঁ এটি তবে আমি এটি ভাগ করে নিতে চেয়েছিলাম :)
বাইটবিট

2
আমি বুঝতে পারি, তবে আমরা সম্প্রতি এটি নিয়ে আলোচনা করেছি এবং সম্প্রদায়ের sensকমত্যটি ছিল যে অবৈধ উত্তরগুলি হয় স্থির করা উচিত বা অপসারণ করা উচিত।
ডেনিস

যদি আপনি ঠিক করেন তবে আমি পূর্বে অগ্রাহ্য করব; আমাকে পিং করুন
lirtosiast

0

সি, 142 বাইট

i,x[6],n;main(j){for(srand(time(0));i<6;n-i?0:printf("%d ",x[i]),i++)for(x[n=j=i]=(69-i/5*43)*(rand()/2147483647.)+1;i<6&&j--;)i-=x[i]==x[j];}

এই সমাধানটি নিয়ে মারাত্মকভাবে খুশি নন কারণ মনে হয় আরও গল্ফ করার সুযোগ থাকা উচিত। আমি আগামীকাল তাজা চোখ দিয়ে আবার তাকাব। এখানে চেষ্টা করুন


0

সুইফ্ট, 165 বাইট

import UIKit;var a=[Int]();for i in 0...5{func z()->Int{return Int(arc4random_uniform(i<5 ?68:25)+1)};var n=z();while i<5&&a.contains(n){n=z()};a.append(n);print(n)}

দ্রুত একটি এক্সকোড খেলার মাঠে চালানো যেতে পারে।

সম্পাদনা: এখানে বর্তমান সমস্যাটি এটির তাত্ত্বিকভাবে সম্ভব যে এটির জন্য চিরতরে চালানো সম্ভব হবে যদি arc4random_uniform কোনওভাবে একই সংখ্যাটি টানতে থাকে। সময়ের যে কোনও উল্লেখযোগ্য দৈর্ঘ্যের জন্য, এই ঘটনার প্রতিক্রিয়াগুলি সম্ভবত পাওয়ারবলকে জিতানোর প্রতিক্রিয়ার চেয়ে ভাল।


এটি কীভাবে গ্যারান্টি দেয় যে কোনও সদৃশ মান থাকবে না?
সুপারক্যাট

@ সুপের্যাট, এটি আগে হয়নি তবে এখন তা করে।
টিমগার্লসন

0

পার্ল 6 ,  32   31 বাইট

# space is necessary so that the parens denote a list
# rather than being part of the call to `put`
put (pick(5,1..69),(1..26).pick) # 32 bytes
# 25 35 57 67 62 24␤

এটিকে কোনও ফাংশনে পরিণত করে যা একটি স্ট্রিং দেয়, আমি put␠কেবলমাত্র 3 ( {~ }) যুক্ত করার সময় 4 বাইট ( ) সরাতে পারি

{~(pick(5,1..69),(1..26).pick)} # 31 bytes

ব্যবহার:

say {...}().perl; # use .perl to prove it returns a string
# "25 35 57 67 62 24"

যদি কোনও ফাংশনকে মানগুলির একটি তালিকা ফেরত দেওয়ার অনুমতি দেওয়া হয়, তবে নিম্নলিখিতগুলিও কাজ করবে।

(অন্যথায় এটি উপরের মত একই তবে অভ্যন্তরের মধ্যে থাকবে { })

  • ফাংশন যা একটি একক ফ্ল্যাট তালিকা দেয়

    {|pick(5,1..69),(1..26).pick} # 29 bytes
    # (25,35,57,67,62,24)
  • ফাংশন যা উপ তালিকার প্রথম 5 নম্বর সহ একটি তালিকা দেয় returns

    {pick(5,1..69),(1..26).pick} # 28 bytes
    # ((25,35,57,67,62),24)
  • ফাংশন যা উপ-তালিকার প্রথম 5 সহ একটি তালিকা এবং অন্য সাব তালিকায় পাওয়ারবল returns

    {pick(5,1..69),pick 1,1..26} # 28 bytes
    # ((25,35,57,67,62),(24,))

0

গুরুতরভাবে, 35 বাইট

একটি গল্ফ ভাষাতে একটি উত্তর আমার প্রথম প্রচেষ্টা।

এটি হওয়া উচিত তার চেয়ে দীর্ঘ মনে হয়। ডাব্লু
দিয়ে পুনরাবৃত্তিটি মুছে ফেলা হতে পারে তবে এটি অনলাইন দোভাষীর মধ্যে নষ্ট হয়ে গেছে বলে মনে হচ্ছে এবং আমি অনির্ধারিত কোড পোস্ট করতে চাই না।

খুব খারাপ { তালিকার কাজ করে না।

কোড:

:70:1xi J{. J{. J{. J{. J{.:26:Ju.

হেক্স ডাম্প:

3a37303a317869204a7b2e204a7b2e204a7b2e204a7b2e204a7b2e3a32363a4a752e7f

ব্যাখ্যা:

:70:1x                       # Push a list of the numbers 1-69
i                            # Explode list
 J{.                         # rotate stack random(len(stack)) times and pop/print
 J{. J{. J{. J{.             # same thing 4 more times
:26:Ju.                      # print random number in 1-26
                             # (7F) unprintable, terminate without explicit printing

অনলাইন দোভাষী


0

লুয়া, 96 বাইট

একটি সাধারণ সমাধান, একটি সেট হিসাবে একটি টেবিল ব্যবহার করে তার ভিতরে মান রেখে যাতে table[value]=truthy/falsyতারা এটি ভিতরে আছে কিনা তা পরীক্ষা করতে সক্ষম হবে।

আমি 5 বাইট হারিয়েছি কারণ আমাকে আমার টেবিলের প্রথম মানটি সেট করতে হবে, অন্যথায় আমি while(o[n])লুপের ভিতরে যাব না এবং nএলোমেলো ফাংশনটি ব্যবহার করার আগে কেবল আউটপুট করব । লুয়া যেমন 1-ভিত্তিক সারণী ব্যবহার করে, আমাকে এটিকে তার প্রথম মানটি ঘরে লাগাতে বাধ্য করতে হবে [0], অন্যথায় আমি একটি আউটপুট করতে পারিনি 1

m,n,o=math.random,0,{[0]=0}for i=1,5 do while(o[n])do n=m(69)end o[n]=0 print(n)end print(m(26))

Ungolfed:

m,n,o=math.random,0,{[0]=0}
for i=1,5
do
  while(o[n])
  do
    n=m(69)
  end
  o[n]=0
  print(n)
end
print(m(26))

0

সি ++, 252 বাইট

Golfed:

#include<iostream>
#include <random>

int main(){std::random_device rd;std::mt19937 gen(rd());std::uniform_int_distribution<> dis(1,69);for(int c=0;c<=5;c++){std::cout<<dis(gen)<<" ";}int x=dis(gen);while(x>26||x<1){x=dis(gen);}std::cout<<x;return 0;}

Ungolfed:

#include<iostream>
#include <random>

int main()
{
    std::random_device rd;
    std::mt19937 gen(rd());
    std::uniform_int_distribution<> dis(1, 69);
    for(int c = 0; c <= 5; c++){
        std::cout<<dis(gen)<<" ";
    }
    int x = dis(gen);
    while (x > 26 || x < 1){
        x = dis(gen);
    }
    std::cout<<x;
    return 0;
}
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.