Pilih Nomor Powerball!

34

Powerball adalah lotere Amerika yang baru-baru ini mendapatkan perhatian karena jackpot saat ini (per 11 Januari 2016) adalah hadiah lotre terbesar dalam sejarah , sekitar $ 1,5 miliar ( USD ).

Pemain Powerball memilih 5 angka berbeda dari 69 bola putih bernomor, dan 1 satu nomor "Powerball" dari 26 bola merah bernomor. Mereka memenangkan jackpot jika lima pilihan bola putih mereka cocok dengan yang digambar dalam urutan apa pun, dan jika mereka memilih nomor "Powerball" yang benar.

Jadi peluang memenangkan jackpot adalah 1 in (69 choose 5)*(26 choose 1)atau ((69*68*67*66*65)/(5*4*3*2*1))*26, yaitu 1 dalam 292.201.338

Tidak ada yang memenangkan jackpot dalam undian terbaru pada tanggal 9 Januari 2016, tetapi mungkin seseorang akan memenangkan undian berikutnya pada 13 Januari 2016, 10:59 malam ET.

Tantangan

Tulis program atau fungsi yang mensimulasikan gambar Powerball, tidak mengambil input tetapi mengeluarkan 5 angka acak berbeda dari 1 hingga 69 inklusif, dan kemudian satu angka "Powerball" acak dari 1 hingga 26 inklusif (yang bisa merupakan pengulangan salah satu dari 5 angka awal).

Angka "Powerball" harus selalu menjadi angka terakhir dalam output, tetapi sebaliknya urutan 5 angka pertama tidak masalah.

6 angka harus berupa output dalam desimal , baik dipisahkan oleh spasi atau baris baru, dengan baris tambahan tunggal opsional. Koma, tanda kurung, dan karakter lain tidak diizinkan dalam output.

Jadi ini akan menjadi output yang valid (menggunakan angka-angka dari gambar terakhir ):

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

Semua 292201338 hasil yang mungkin harus dimungkinkan dengan probabilitas seragam. Anda dapat menggunakan generator nomor pseudo-acak bawaan dan menganggap mereka memenuhi standar ini.

Berikut ini adalah implementasi referensi yang tidak disatukan yang bekerja di Python 2 atau 3:

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

Kode terpendek dalam byte menang.


Perhatikan bahwa saya tidak memiliki afiliasi dengan Powerball dan tidak benar-benar menyarankan Anda bermain. Tetapi jika Anda memenangkan apa pun dari angka yang dihasilkan oleh salah satu program di sini, saya yakin kami akan senang mendengarnya. : D

Hobi Calvin
sumber
12
Kesempatan yang terlewatkan untuk menuntut bagian dari kemenangan jika seseorang di sini mendapatkan jackpot.
Alex A.
Apakah nomor 5 harus berurutan?
Neil
@Neil "Angka" Powerball "harus selalu menjadi angka terakhir dalam output, tetapi sebaliknya urutan 5 angka pertama tidak masalah."
Hobi Calvin
3
Saya yakin tidak ada yang bingung, tetapi yang Anda maksud sebenarnya adalah bilangan bulat dalam tantangan.
jpmc26
1
@ CanadianLuke Urutan 5 angka pertama tidak masalah. Ada beberapa 5! = 5*4*3*2*1cara untuk mengatur 5 hal, jadi Anda memperhitungkannya.
Calvin Hobbies

Jawaban:

29

Dyalog APL, 10 byte

(5?69),?26

Diad ?adalah ⍺ nomor acak yang berbeda dalam [1, ⍵], dan monadic ?adalah nomor acak tunggal.

Coba di sini .

lirtosiast
sumber
Hampir identik di J kecuali Anda harus menambahkan 1 karena 0 pengindeksan berdasarkan: 1+(5?69),?26.
randomra
13

CJam, 16 byte

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

Cobalah online.

Gagang pintu
sumber
1
Saya suka bagaimana :)membuat hal-hal sedikit lebih besar, seperti bagaimana senyum orang asing dapat membuat Anda sedikit lebih bahagia.
Dana Gugatan Monica
1
Saya pikir saya akan cantik :)jika saya memenangkan lotre. +1
Arcturus
9

MATL , 10 byte

69 5Zr26Yr

Menggunakan versi saat ini (9.2.0) dari bahasa / kompiler.

Contoh

Dengan kompiler dijalankan di Matlab:

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

Dengan kompiler dijalankan pada Oktaf:

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

Lima angka pertama dipisahkan oleh spasi, bukan oleh baris baru. Ini karena randsamplefungsi mendasar Octave berperilaku berbeda dari Matlab (dan telah diperbaiki dalam versi baru dari kompiler). Bagaimanapun, baris baru dan ruang sama-sama diizinkan oleh tantangan.

Sunting (4 April 2016) : Cobalah online!

Penjelasan

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

Lihat fungsi Matlab yang relevan: randsampledan randi.

Luis Mendo
sumber
7

Ruby, 33 32

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

Ruby kebetulan memiliki metode bawaan, sampel, yang memilih nilai acak dari array tanpa penggantian. Terima kasih kepada QPaysTaxes untuk menunjukkan bahwa saya tidak memerlukan parens.

histokrat
sumber
Anda yakin membutuhkan tanda kurung? Saya pikir Anda bisa memotong byte dengan menjatuhkan sepuluh dan memiliki ruang antara p dan *. Saya sedang memeriksa sekarang. EDIT: diuji dan AFAICT berfungsi.
Dana Gugatan Monica
Ha, benar, terima kasih. Saya telah menguji dalam sebuah contoh irb di mana saya ditugaskan pdi beberapa titik, yang sebenarnya memecah sintaks parsing untuk versi itu.
histokrat
6

R, 30 29 byte

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

The sampleFungsi melakukan simple random sampling dari input. Jika bilangan bulat tunggal diberikan sebagai argumen pertama, pengambilan sampel dilakukan dari 1 ke argumen. Ukuran sampel adalah argumen kedua. Kami menggunakan opsi default pengambilan sampel tanpa penggantian.

Cobalah online

Alex A.
sumber
Anda dapat menyimpan dua byte penuh dengan menggunakan cbukannyacat
Dean MacGregor
@DeanMacGregor Terima kasih atas sarannya, tetapi pengiriman di sini harus berupa program lengkap yang menulis ke STDOUT atau fungsi yang mengembalikan nilai. Dalam hal ini saya telah memilih yang pertama. Jika saya menggunakan c, ini hanya potongan, yang tidak diizinkan secara default.
Alex A.
Ahh begitu. Saya bukan pegolf yang rajin jadi saya tidak terbiasa dengan hal itu.
Dean MacGregor
@DeanMacGregor Tidak masalah. Terima kasih atas sarannya. :)
Alex A.
6

Python 3.5, 63 byte

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

Ini pada dasarnya implementasi referensi golf. Perhatikan bahwa 3,5 diperlukan untuk memerciki dalam argumen yang tidak terakhir.

Sp3000
sumber
6

Oktaf, 35 32 byte

Hobi Calvin mengkonfirmasi bahwa ans =tidak apa-apa ketika menggunakan fungsi, jadi:

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

Ini memiliki kesamaan dengan Memming ini jawabannya , tetapi menggunakan pengindeksan langsung yang hanya mungkin dalam Octave, dan itu 5 7 byte lebih pendek, jadi saya pikir itu layak postingan pula.

randperm(69)membuat daftar dengan permutasi acak angka 1-69. Dimungkinkan untuk secara langsung mengindeks daftar (tidak mungkin di MATLAB) untuk hanya mendapatkan 5 angka pertama seperti ini (1;5). Daftar ini diikuti oleh randi(26)yang mengembalikan angka tunggal antara 1 dan 26.

Tua:

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

Daftar yang dihasilkan ditampilkan menggunakan disp.

Stewie Griffin
sumber
6

PowerShell v2 +, 31 27 byte

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

Membutuhkan versi 2 atau lebih baru, karena Get-Randomtidak ada dalam v1 (yang Get-tersirat, dan -Maximumposisional). Output dipisahkan baris baru.

Tidak Disatukan:

Get-Random -InputObject (1..69) -Count 5
Get-Random -Maximum 27
AdmBorkBork
sumber
Random -ma 27bisa Random 27seperti -Maximumdicocokkan dengan posisi 0
Matt
@ Matt Terima kasih - Saya lupa itu.
AdmBorkBork
5

Shell + coreutils, 31

shuf -i1-69 -n5
shuf -i1-26 -n1
Trauma Digital
sumber
4

MATLAB, 40

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

Aku tahu. Ini solusi yang membosankan.

Memming
sumber
4

PHP, 69 byte

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

Jawabannya cukup lurus ke depan. Hasilkan 1-69 range, lalu gunakan array_randuntuk mengambil 5 kunci acak dari array, dan gema $k+1nilai (0-diindeks), kemudian gema int acak dari 1-26.

Samsquanch
sumber
4

C #, 153 byte 140 byte

Berkat "McKay":

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

Solusi 153 byte:

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

Solusi sederhana menggunakan Linq dan pengocokan menggunakan GUID.

ivaan
sumber
1
Tidak perlu string bergabung di bagian nomor powerball dan Anda akan menghemat byte baik caching pesanan oleh delegasi atau banyak lagi dengan menggunakan acak untuk nomor powerball
pinkfloydx33
Dan jika Anda menyatukan urutan alih-alih penggabungan string, Anda tidak perlu menentukan spasi 3 kali, itu akan lebih efisien juga. mis.string.Join(" ", ....take(5).Concat(....Take(1)))
McKay
4

Pyth - 13 14 13 byte

Main golf mungkin, ini hanya FGITW.

jb>5.SS69hO26

Cobalah online di sini .

Maltysen
sumber
Bisakah Anda menjelaskan kode sehingga dapat diperiksa bahwa itu benar-benar seragam?
Masclins
Anda dapat mengubah <... 5ke >5.... Kode terakhirjb>5.SS69hO26
Biru
2

Brachylog , 40 byte

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

Penjelasan

Brachylog tidak memiliki built-in untuk nomor acak (belum ...) jadi kita harus menggunakan predikat SWI-Prolog untuk itu: random/1. Kami dapat memasukkan kode SWI-Prolog di Brachylog menggunakan backquotes.

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
Fatalisasi
sumber
2

JavaScript (ES6), 106 86 84 byte

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

Karena kami tidak dapat secara unik mencicipi sampel dalam JavaScript, ini berfungsi dengan membuat Set (yang hanya memiliki nilai unik), menambahkan secara acak Randand (1-69) hingga ada 5 yang unik, menambahkan nomor acak (1-26), kemudian bergabung dan mengembalikan semuanya.

Mwr247
sumber
2

Elixir , 83 Bytes

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

Ketika hanya IO.putsmemasukkan array bilangan bulat, Elixir akan menginterpretasikan bilangan bulat sebagai karakter dan karenanya mengeluarkan beberapa string sebagai ganti nomor powerball yang diinginkan. Jadi, kita harus mengurangi array integer menjadi sebuah string.

srecnig
sumber
2

Ruby, 47 43 39 byte

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

Saya pikir itu bisa golf lagi, tapi saya akan bekerja setelah saya selesai mengagumi betapa cantiknya kode ini, mengingat.

Cara kerjanya hampir sama dengan cara lainnya: Ambil larik angka 1 hingga 69, kocok, dapatkan lima pertama, hasilkan, lalu keluarkan angka acak antara 1 dan 26.

Saya telah melalui beberapa iterasi sebelum memposting ini:

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

(di mana <newline>diganti dengan baris baru yang sebenarnya)

EDIT: Ups, tidak melihat jawaban Ruby yang sudah ada sebelumnya. Saya tersandung sampledan sedang bergulir ke bawah untuk mengedit jawaban saya, tetapi kemudian saya melihatnya ... Oh well. Skor akhir saya adalah 43 byte, tetapi saya akan terus bermain golf sedikit untuk melihat seberapa baik yang bisa saya lakukan.

Dana Gugatan Monica
sumber
2

Mathematica, 64 byte

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

Cukup sederhana.

LegionMammal978
sumber
Output memiliki tanda kurung dan koma.
Charles
-1 tidak valid karena alasan di atas
CalculatorFeline
StringJoin=""<>##&
CalculatorFeline
@CatsAreFluffy Sebenarnya sudah diperbaiki kali ini. Baru saja mencampuradukkan fungsi saya ...
LegionMammal978
Saya pikir Anda dapat mempersingkatnya jika Anda hanya menggunakan Range / RandomSample dan memindahkannya ke dua daftar alih-alih menggunakan RandomInteger. Sesuatu seperti RandomSample [Rentang [# 1], # 2] & @@@ {{69,5}, {26,1}}]
Xanderhall
1

Perl 5, 59 byte

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

Itu adalah subrutin; gunakan sebagai:

perl -M5.010 -e'sub f{...}f'
msh210
sumber
Anda dapat menggunakan -Esebagai gantinya-M5.010 -e
andlrc
Anda tidak bisa menggantinya -1+2*int rand 2dengan rand>.5?1:-1?
andlrc
Dan seharusnya Anda tidak dapat menyimpan beberapa lainnya dengan menggantinya ;say$==dengan,$==
andlrc
@ dev-null Terima kasih! The -M5.010tidak menghitung pula jadi saya tidak repot-repot menyingkat itu. Saya pikir saya mencoba koma bukan yang lain saydan tidak berhasil. Tetapi aturan sortir yang baru adalah ide yang bagus, terima kasih. Saya akan mengujinya ketika saya memiliki kesempatan dan mengeditnya.
msh210
1

PHP, 65 byte

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

Berkat jawaban PHP lainnya di halaman ini. Saya menulis sebuah program sendiri, dan ternyata itu adalah jawaban yang persis sama dengan yang ditulis oleh Samsquanch, yang mendorong saya untuk mengambil langkah lebih jauh untuk menghemat beberapa byte.

Jika ada yang bisa menemukan cara untuk menambahkan satu array ke yang lain di sini yang kurang dari 5 byte yang dibutuhkan saya untuk bergabung dengan nomor powerball setelahnya, saya akan sangat menghargai itu, karena itu membuat saya gila! Yang terbaik yang bisa saya buat adalah setelah array_randdan sebelumnya join, memiliki pernyataan seperti +[5=>rand()%25], tapi itu byte tambahan hanya setelah itu.

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

Jalankan melalui baris perintah. Mencicipi:

C:\(filepath)>php powerball.php

Keluaran:

 12 24 33 67 69 4
Xanderhall
sumber
1

PARI / GP, 71 70 byte

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

Ini menghasilkan permutasi acak [1..69], lalu mengambil 5 pertama.

Sayangnya ini adalah pengguna yang tidak efisien dari keacakan, mengkonsumsi rata-rata 87 byte entropi dibandingkan dengan informasi-teori ideal 3,5. Ini terutama karena seluruh permutasi dihasilkan bukan hanya 5 anggota pertama, dan juga karena perms diperintahkan (kehilangan lg 5! = ~ 7 bit). Selanjutnya, randomgunakan strategi penolakan daripada menggunakan kode aritmatika. (Ini karena PARI menggunakan xorgen Brent, yang cukup cepat sehingga biaya overhead dari strategi yang lebih rumit jarang bermanfaat.)

Ada tiga perubahan 'jelas' yang tidak berfungsi di bawah versi gp (2.8.0) saat ini. randomdan printdapat disimpan dalam variabel, dan printbisa dipanggil langsung daripada melalui ->fungsi anonim :

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

Bersama-sama ini akan menghemat 9 byte. Sayangnya kedua fungsi ini valid tanpa argumen, dan karenanya dievaluasi segera daripada disimpan, jadi ini tidak menghitung output yang diinginkan.

Charles
sumber
0

Kode Mesin Intel x86, 85 byte

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

Yah kadang-kadang mencetak angka yang sama jika demikian, coba saja lagi dengan menekan tombol.

Kompilasi dengan:

nasm file.asm -o file.bin

Pastikan untuk menyelaraskannya ke ukuran disket (tambahkan angka nol di bagian akhir) untuk memasangnya ke vm (tidak perlu sistem operasi apa pun).

Membongkar:

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
ByteBit
sumber
6
Selamat Datang di Programming Puzzles & Code Golf! Melihat kode mesin selalu mengesankan, tetapi jika mencetak angka berulang-ulang, saya khawatir kiriman Anda tidak valid.
Dennis
1
Ya itu tapi saya hanya ingin berbagi ini :)
ByteBit
2
Saya mengerti, tetapi kami baru-baru ini membahas ini , dan konsensus komunitas adalah bahwa jawaban yang tidak valid harus diperbaiki atau dihapus.
Dennis
Saya akan undownvote jika Anda memperbaiki; tolong ping saya.
lirtosiast
0

C, 142 byte

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

Tidak terlalu senang dengan solusi ini karena rasanya harus ada lebih banyak kesempatan bermain golf. Saya akan melihatnya lagi besok dengan mata segar. Coba di sini .

Cole Cameron
sumber
0

Swift, 165 byte

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

Dapat dengan cepat dijalankan di Playground Xcode.

EDIT: Masalah saat ini di sini adalah bahwa secara teori ini memungkinkan untuk berjalan selamanya dalam loop while jika arc4random_uniform entah bagaimana terus menarik nomor yang sama. Peluang yang terjadi, untuk jangka waktu yang lama, mungkin lebih baik daripada peluang memenangkan Powerball.

timgcarlson
sumber
Bagaimana cara menjamin bahwa tidak akan ada nilai duplikat?
supercat
@ supercat, tidak sebelumnya, tapi sekarang ya.
timgcarlson
0

Perl 6 ,  32   31 byte

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

Mengubahnya menjadi fungsi yang mengembalikan sebuah string, saya dapat menghapus 4 byte ( put␠) sementara hanya menambahkan 3 ( {~ })

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

Pemakaian:

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

Jika suatu fungsi diizinkan untuk mengembalikan daftar nilai, yang berikut ini juga akan berfungsi.

(Kalau tidak, akan sama seperti di atas tetapi di dalam { })

  • fungsi yang mengembalikan daftar datar tunggal

    {|pick(5,1..69),(1..26).pick} # 29 bytes
    # (25,35,57,67,62,24)
  • fungsi yang mengembalikan daftar dengan 5 angka pertama dalam sub daftar

    {pick(5,1..69),(1..26).pick} # 28 bytes
    # ((25,35,57,67,62),24)
  • fungsi yang mengembalikan daftar dengan 5 pertama dalam sub daftar, dan Powerball di sub daftar lainnya

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

Serius, 35 byte

Upaya pertama saya pada jawaban dalam bahasa golf.

Terasa lebih lama dari seharusnya.
Pengulangan kemungkinan bisa dihapus dengan W , tetapi tampaknya rusak di penerjemah online dan saya tidak ingin memposting kode yang belum diuji.

Sayang sekali { tidak berfungsi di daftar.

Kode:

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

Hex dump:

3a37303a317869204a7b2e204a7b2e204a7b2e204a7b2e204a7b2e3a32363a4a752e7f

Penjelasan:

: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

Penerjemah online

Emigna
sumber
0

Lua, 96 Bytes

Solusi sederhana, menggunakan tabel sebagai set dengan meletakkan nilai di dalamnya table[value]=truthy/falsyagar dapat memeriksa apakah mereka di dalamnya atau tidak.

Saya kehilangan 5 byte karena saya harus menetapkan nilai pertama dari tabel saya, kalau tidak saya tidak akan masuk ke dalam while(o[n])loop dan hanya akan output nsebelum menggunakan fungsi acak. Karena Lua menggunakan tabel berbasis 1, saya juga harus memaksanya untuk meletakkan nilai pertamanya ke sel [0], jika tidak saya tidak bisa menampilkan a 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))

Tidak Disatukan:

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))
Katenkyo
sumber
0

C ++, 252 byte

Golf:

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

Tidak Disatukan:

#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;
}
Michelfrancis Bustillos
sumber