Powerball Numaralarını Seçin!


34

Powerball son zamanlarda dikkat çeken bir Amerikan piyango çünkü mevcut ikramiye (11 Ocak 2016 itibariyle) tarihteki en büyük loto ödülü , yaklaşık 1.5 milyar dolar ( USD ).

Powerball oyuncuları 69 numaralı beyaz toplardan 5, 1 numaralı "Powerball" 26 numaralı kırmızı toplardan seçer. Onlar kazanmak onların beş beyaz top seçimler herhangi bir sırayla çizilmiş eşleşmesi durumunda ikramiye, ve onlar doğru "Powerball" sayısını seçerse.

İkramiye kazanma şansını Yani 1'dir (69 choose 5)*(26 choose 1)ya ((69*68*67*66*65)/(5*4*3*2*1))*26olan 1 292,201,338 yılında

9 Ocak 2016'daki son çekilişte kimse ikramiye kazanmadı , ancak belki birileri 13 Ocak 2016, 10:59 ET'de bir sonraki çizimi kazanacak.

Meydan okuma

Bir Powerball çizimini simüle eden, girdi almayan, ancak 1 ila 69 arasında 5 farklı rasgele sayı ve ardından 1 ila 26 arasında bir rasgele "Powerball" numarası veren bir program veya işlev yazın (5'ten birinin tekrarı olabilir) ilk sayılar).

"Powerball" numarası her zaman çıktıdaki son sayı olmalıdır, ancak aksi takdirde ilk 5 sayının sırası önemli değildir.

6 sayı , isteğe bağlı tek izleyen bir yeni satırla, boşlukla ayrılmış veya yeni satırla ayrılmış olarak ondalık biçimde verilmelidir . Çıkışlarda virgül, parantez ve diğer karakterlere izin verilmez.

Dolayısıyla bunlar geçerli çıktılar olacaktır ( son çizimdeki sayıları kullanarak ):

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

292201338 muhtemel sonuçların tümü eşit olasılıkla mümkün olmalıdır. Yerleşik sözde rasgele sayı üreteçlerini kullanabilir ve bu standarda uyduklarını varsayabilirsiniz.

İşte Python 2 veya 3'te çalışan yersiz bir referans uygulaması:

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

Bayt cinsinden en kısa kod kazanır.


Powerball ile bir bağlantım olmadığını ve oynamanı tavsiye etmediğini unutmayın. Ancak buradaki programlardan birinin ürettiği sayılardan bir şey kazanırsanız, duymayı çok isteriz. : D


12
Kazançlardan bir pay istemek için kaçırılan fırsat, burada birisinin ikramiye alması durumunda.
Alex A.,

5 sayı sıralı olmak zorunda mı?
Neil

@Neil "" Powerball "numarası her zaman çıktıdaki son sayı olmalıdır, ancak ilk 5 sayının sırası önemli değildir."
Calvin'in Hobileri

3
Kimsenin kafası karışık olmadığından eminim, ama aslında mücadelede tamsayılar demek istiyorsun .
jpmc26

1
@CanadianLuke İlk 5 sayının sırası önemli değil. 5! = 5*4*3*2*15 şeyi düzenlemenin yolları vardır , bu yüzden bunu hesaba katarsınız.
Calvin'in Hobileri,

Yanıtlar:


29

Dyalog APL, 10 bayt

(5?69),?26

diyadik ? [1, ⍵] içinde ⍺ farklı rastgele sayılar olduğu ve monadik ?tek rasgele bir sayıdır.

Burada dene .


J temelli, 0 temelli indeksleme nedeniyle 1 eklemek zorunda olmanız dışında hemen hemen aynı 1+(5?69),?26.
rastgele

13

CJam, 16 bayt

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

Çevrimiçi deneyin.


1
:)İşleri nasıl biraz daha büyük kılmayı seviyorum, bir yabancının gülümsemesinin seni nasıl daha az mutlu etmesini sağlıyor.
Fon Monica'nın Davası

1
:)Piyango kazanırsam güzel olacağımı düşünüyorum . +1
Arcturus,

9

MATL , 10 bayt

69 5Zr26Yr

Dilin / derleyicinin geçerli sürümünü (9.2.0) kullanır .

Örnek

Matlab'da derleyici çalıştırıldığında:

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

Derleyici Octave'da çalıştırıldığında:

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

İlk beş sayı, yeni satır ile değil boşlukla ayrılır. Bu, Octave'nin temel randsampleişlevinin Matlab'lardan farklı davranmasından kaynaklanmaktadır (ve derleyicinin yeni bir sürümünde düzeltilmiştir). Her neyse, newline ve uzay hem mücadeleye izin veriyor.

Düzenleme (4 Nisan 2016) : Çevrimiçi deneyin!

açıklama

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

İlgili Matlab fonksiyonlarına bakınız: randsampleve randi.


7

Ruby, 33 32

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

Ruby, bir diziden değiştirilmeden rastgele değerler seçen yerleşik bir yöntem örneğe sahip olur. QPaysTaxes'e, parense ihtiyacım olmadığını belirttiği için teşekkürler.


Parantez içerisine ihtiyacınız olduğuna emin misiniz? Onda bırakarak ve p ile * arasında bir boşluk bırakarak bir baytı kırpabileceğinizi düşünüyorum. Şimdi kontrol ediyorum. EDIT: test ve AFAICT çalışıyor.
Fon Monica'nın Davası

Ha, öyle, teşekkür ederim. Bir pnoktada tayin ettiğim irb örneğinde test ediyordum , ki bu versiyon için sözdizimi ayrıştırıyordu.
histocrat

6

R, 30 29 bayt

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

sampleFonksiyon girişi basit rastgele örnekleme yapar. İlk argüman olarak tek bir tamsayı verilirse, örnekleme 1'den argümana kadar yapılır. Örneklem büyüklüğü ikinci argümandır. Varsayılan örnekleme seçeneğini değiştirmeden kullanıyoruz.

Çevrimiçi deneyin


cyerine iki bütün bayttan tasarruf edebilirsinizcat
Dean MacGregor

@DeanMacGregor Öneri için teşekkürler, ancak buraya gönderilenler ya STDOUT'a yazılan tam programlar ya da bir değer döndüren işlevler olmalıdır. Bu durumda eskiyi seçtim. Kullanacak olsaydım c, bu yalnızca varsayılan olarak izin verilmeyen bir pasaj olurdu.
Alex A.,

Ahh görüyorum. Ben hevesli bir golfçü değilim, bu yüzden aşina değildim.
Dean MacGregor,

@DeanMacGregor Sorun değil. Öneri için yine de teşekkürler. :)
Alex A.

6

Python 3.5, 63 bayt

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

Temelde golf oynadığı referans uygulamasıdır. Son olmayan bir argümanda uyarlamak için 3.5'in gerekli olduğunu unutmayın.


6

Octave, 35 32 bayt

Calvin'in Hobileri ans =, bir işlev kullanırken bunun doğru olduğunu onayladılar.

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

Bu Memming en benzerlikler vardır cevap , ancak Octave sadece mümkün direkt indeksleme kullanır ve bu kadar 5 Ben yine gönderme değer olduğunu düşündüm bu yüzden, 7 bayt kısa.

randperm(69)1-69 sayılarının rasgele permütasyonlu bir listesini oluşturur. Bu şekilde sadece ilk 5 sayıyı almak için listeyi doğrudan indekslemek mümkündür (MATLAB’da mümkün değildir) (1;5). Listeyi randi(26)1 ile 26 arasında tek bir sayı döndüren takip eder .

Eski:

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

Sonuç listesi kullanılarak görüntülenir disp.


6

PowerShell v2 +, 31 27 bayt

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

V1'de Get-Randombulunmadığı gibi sürüm 2 veya daha yenisini gerektirir ( Get-ima edilmiştir ve-Maximum konumsaldır). Çıktı yeni satır ayrılmış.

Ungolfed:

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

Random -ma 27pozisyon 0 ile eşleştirildiği Random 27gibi olabilir-Maximum
Matt

@Matt Teşekkürler - Bunu unuttum.
AdmBorkBork


4

MATLAB, 40

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

Biliyorum. Bu sıkıcı bir çözüm.


4

PHP, 69 bayt

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

Oldukça yalındır cevap. Bir 1-69 oluşturun range, daha sonra array_randdiziden 5 rastgele anahtarı almak için kullanın ve $k+1değeri (0-indeksli) tekrarlayın, sonra 1-26 arasında rastgele bir int ekolayın.


4

C #, 153 bayt 140 bayt

"McKay" sayesinde:

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

153 baytlık çözüm:

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

Linq kullanılarak basit çözüm ve GUID kullanarak karıştırma.


1
İpin powerball numarası bölümüne katılmasına gerek yoktur ve siparişi temsilci tarafından önbelleklemek veya daha fazlasını yapmak için
baytları kurtarırsınız

Ve dizeleri birleştirme yerine dizileri birleştirirseniz, space3 sayısını belirtmeniz gerekmez, bunun da daha verimli olması gerekir. örneğinstring.Join(" ", ....take(5).Concat(....Take(1)))
McKay

4

Pyth - 13 14 13 bayt

Binbaşı golf mümkün, bu sadece bir FGITW oldu.

jb>5.SS69hO26

Burada çevrimiçi deneyin .


Kodu açıklar mısın, böylece gerçekten tek tip olduğu kontrol edilebilir mi?
Masclins

Değişebilirsin <... 5To >5.... Son kodjb>5.SS69hO26
Blue

2

Brachylog , 40 bayt

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

açıklama

Bunun için bir SWI-Prolog yüklemi kullanmak zorunda Brachylog (... henüz) yerleşik bir rasgele sayılar için yok: random/1. SWI-Prolog kodunu Brachylog'da backquotes kullanarak girebiliriz.

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

JavaScript (ES6), 106 86 84 bayt

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

JavaScript'te rastgele rasgele örnekleme yapamayacağımız için, bu bir Set oluşturarak (yalnızca benzersiz değerleri tutar), rasgele bir sayı ekleyerek (1-26) tekrarlayan bir şekilde rasgele (1-69) ekleyen bir Set (1-69) ekleyerek çalışır. sonra katılmak ve hepsini geri vermek.


2

İksir , 83 Bayt

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

Sadece IO.putsbir tamsayı dizisi verirken Elixir, tamsayıları karakter olarak yorumlar ve bu nedenle istenen powerball sayıları yerine bazı dizgiler çıkarır. Bu nedenle, tamsayı dizisini bir dizgiye indirgemeliyiz.


2

Ruby, 47 43 39 bayt

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

Daha çok golf oynayabileceğini düşünüyorum, ancak bu kodun ne kadar güzel göründüğünü hayranlıkla inceleyerek bir kez çalışacağım üzerinde çalışacağım.

Neredeyse her şeyle aynı şekilde çalışır: 1 ila 69 arasında bir sayı dizisini alın, bunları karıştırın, ilk beşi alın, çıktı alın, sonra 1 ile 26 arasında rastgele bir sayı alın.

Bunu göndermeden önce birkaç kez tekrarladım:

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

(nerede <newline> gerçek bir yeni satırla değiştirilir)

EDIT: Boğmaca, önceden var olan Ruby'nin cevabını görmedi. Tökezledim sampleve cevabımı düzenlemek için aşağı kayıyordum, ama sonra onu gördüm. Son puanım 43 bayttır, ancak ne kadar iyi yapabileceğimi görmek için biraz golf oynamaya devam edeceğim.


2

Mathematica, 64 bayt

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

Oldukça basit.


Çıktı ayraçlar ve virgüllere sahiptir.
Charles

-1 yukarıdaki nedenden dolayı geçersiz
CalculatorFeline

StringJoin=""<>##&
CalculatorFeline

@CatsAreFluffy Aslında bu sefer düzeltildi. İşlevlerimi karıştırdım ...
LegionMammal978

Sadece Range / RandomSample kullanıyorsanız ve RandomInteger kullanmak yerine iki listeye aktardıysanız kısaltabileceğinizi düşünüyorum. RandomSample [Range [# 1], # 2] & @@@ {{69,5}, {26,1}}] gibi bir şey
Xanderhall

1

Perl 5, 59 bayt

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

Bu bir alt yordam; olarak kullan:

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

Sen kullanabilirsiniz -Eyerine-M5.010 -e
andlrc

Eğer yerine Cant -1+2*int rand 2ile rand>.5?1:-1?
andlrc,

Ve değiştirerek bir kaç kaydetmek mümkün olmamalıdır ;say$==ile,$==
andlrc

@ dev-null Teşekkürler! Bu -M5.010zaten sayılmaz, bu yüzden onu kısaltmaktan rahatsız olmadım. Sanırım bir başkası yerine virgül denedim sayama işe yaramadı. Ancak yeni sıralama kuralı iyi bir fikir, teşekkürler.
Şansım varken,

1

PHP, 65 bayt

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

Bu sayfadaki diğer PHP cevabı sayesinde. Kendi başıma bir program yazdım ve Samsquanch tarafından yazılan cevapla aynı cevap olarak ortaya çıktı, bu da beni bir kaç baytı kurtarmam için bir adım daha ileri götürdü.

Herkes burada bir diziyi diğerine eklemek için 5 bayttan daha az bir yol bulabilirse, daha sonra powerball numarasına katılmam gerekiyor, çok minnettar olurum, çünkü beni delirtiyor! Elimden gelenin en iyisi , array_randönce ve sonra join, bir şey gibi bir açıklama yapmak olabilirdi +[5=>rand()%25], ancak bu, daha sonra bir araya getirme için fazladan bir bayt.

<?=                                                              // 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

Komut satırından geçirin. Numune:

C:\(filepath)>php powerball.php

Çıktı:

 12 24 33 67 69 4

1

PARI / GP, 71 70 bayt

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

[1..69] 'ın rastgele bir permütasyonu oluşturur, ardından ilk 5'i alır.

Ne yazık ki bu, 3.5'lik bilgi teorik idealine kıyasla, ortalama 87 bayt entropi tüketen, verimsiz bir rasgele kullanıcıdır. Bunun temel nedeni, sadece ilk 5 üye yerine tüm permütasyonun üretilmesi ve ayrıca izinlerin düzenlenmesi (lg 5! = ~ 7 bit). Daha ileri,random aritmetik kodlama kullanmak yerine bir reddetme stratejisi kullanır. (Bunun nedeni, PARI'nın Brent'in xorgenini kullanmasıdır; bu da daha karmaşık stratejilerin ek yükünün nadiren faydalı olacağı kadar hızlıdır.)

Gp'nin (2.8.0) versiyonunda çalışmayan üç 'açık' değişiklik var. randomve printdeğişkenlerde saklanabilir printve adsız ->işlev yerine doğrudan çağrılabilir :

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

Birlikte bunlar 9 bayt kurtarır. Maalesef her iki işlev de bağımsız değişkenler olmadan geçerlidir ve bu nedenle saklanmak yerine hemen değerlendirilir, bu nedenle bunlar istenen çıktıyı hesaplamaz.


0

Intel x86 Makine kodu, 85 bayt

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

Öyleyse bazen aynı sayıları yazdırıyorsa, bir tuşa basarak tekrar deneyin.

İle derleyin:

nasm file.asm -o file.bin

Bir vm'ye monte etmek için (herhangi bir işletim sistemine ihtiyaç duymaz) bir disket boyutuna (sonuna sıfır ekleyin) hizaladığınızdan emin olun.

demontaj:

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
Programlama Bulmacaları ve Kod Golf'üne Hoşgeldiniz! Makine kodunu görmek her zaman etkileyicidir, ancak bazı durumlarda tekrarlanan sayıları yazdırırsa, korkarım gönderiminiz geçersiz.
Dennis

1
Evet öyle ama ben sadece bunu paylaşmak istedim :)
ByteBit

2
Anlıyorum ama bunu yakın zamanda tartıştık ve toplumun fikir birliği geçersiz cevapların düzeltilmesi veya kaldırılması gerektiğiydi.
Dennis

Düzeltirseniz oy kullanmayacağım; Lütfen bana ping at.
lirtosiast

0

C, 142 bayt

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];}

Daha fazla golf fırsatı olması gerektiğini düşündüğü için bu çözümden çok mutlu değiliz. Yarın taze gözlerle tekrar bakacağım. Burada dene .


0

Swift, 165 bayt

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)}

Bir Xcode Oyun Alanında hızlıca çalıştırılabilir.

EDIT: Buradaki şu anki problem, eğer arc4random_uniform bir şekilde aynı sayıyı çekmeye devam ederse, bunun süre zarfında sonsuza dek çalışması teorik olarak mümkün olmasıdır. Bunun gerçekleşmesi ihtimali, önemli bir süre boyunca, Powerball'u kazanma ihtimalinden daha iyidir.


Herhangi bir çoğaltılmış değer olmayacağını nasıl garanti eder?
supercat,

@supercat, daha önce yoktu, ama şimdi öyle.
timgcarlson

0

Perl 6 ,  32   31 bayt

# 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␤

Bir dize döndüren bir işleve dönüştüğünde, put␠yalnızca 3 ( {~ }) eklerken 4 byte ( ) kaldırabilirim.

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

Kullanımı:

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

Bir işlevin değerlerin listesini döndürmesine izin verilirse, aşağıdakiler de işe yarar.

(Aksi takdirde yukarıdaki ile aynı olurdu { })

  • tek bir düz liste döndüren işlev

    {|pick(5,1..69),(1..26).pick} # 29 bytes
    # (25,35,57,67,62,24)
  • Alt listede ilk 5 rakamı içeren listeyi döndüren işlev

    {pick(5,1..69),(1..26).pick} # 28 bytes
    # ((25,35,57,67,62),24)
  • alt listede ilk 5 ile listeyi döndüren işlev ve başka bir alt listede Powerball

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

0

Cidden, 35 bayt

Bir golf dilinde bir cevaba ilk girişimi.

Olması gerekenden daha uzun geliyor.
Tekrarlama büyük olasılıkla W ile kaldırılabilir , ancak çevrimiçi tercümanda bozuk görünüyor ve test edilmemiş kod göndermek istemiyorum.

Çok kötü { listelerde çalışmıyor.

Kod:

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

Hex dökümü:

3a37303a317869204a7b2e204a7b2e204a7b2e204a7b2e204a7b2e3a32363a4a752e7f

Açıklama:

: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

Çevrimiçi tercüman


0

Lua, 96 Bayt

Bir tabloyu küme olarak kullanarak, içindeki değeri table[value]=truthy/falsyolup olmadığını kontrol edebilmek için kullanarak basit bir çözüm .

5 baytı kaybediyorum, çünkü tablomun ilk değerini ayarlamam gerekiyor, aksi halde while(o[n])döngü içine girmeyeceğim ve sadece nrasgele fonksiyonunu kullanmadan önce çıkacağım . Lua 1 tabanlı tabloları kullandığı için, ilk değerini hücreye koyması için zorlamak zorunda kaldım [0], aksi halde a çıktıramadım 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

C ++, 252 bayt

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;
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.