Mini yang terbatas menantang Utas Cop


33

Utas perampok

Tugas Anda sebagai polisi adalah memilih tiga hal:

  • Bahasa pemrograman

  • Urutan OEIS

  • Satu set byte

Anda kemudian secara diam-diam menulis sebuah program dalam bahasa itu yang menghitung urutan istilah ke-n hanya menggunakan byte dalam set. Anda akan mengungkapkan ketiga informasi tersebut sehingga perampok dapat mencoba mencari tahu programnya.

Jawaban akan dicetak dengan jumlah byte dalam set byte dengan skor yang lebih baik. Jawaban yang retak memiliki skor 0. otomatis. Jika jawaban Anda tidak terpecahkan setelah satu minggu, Anda dapat mengungkapkan program yang dimaksud dan menandai jawaban Anda sebagai "aman".

Jawaban harus mampu menghitung setiap istilah dalam file-b dari urutan, tetapi tidak diharuskan untuk menghitung istilah apa pun setelahnya.

Urutan dapat diindeks 1 atau 0 untuk polisi dan perampok.

Berikut ini adalah Skrip Python yang memeriksa apakah kode Anda cocok dengan set byte yang diberikan.


1
Skor yang lebih rendah lebih baik? Atau lebih tinggi? Jadi pada intinya kami mencoba menemukan rangkaian karakter terbatas yang menyulitkan orang lain untuk membuat program dalam bahasa yang dipilih, setelah kami menyelesaikan solusinya?
BradC

1
Apakah kita perlu menggunakan semua byte di set kita? Saya kira ya tetapi mungkin harus ditentukan dalam tantangan.
Shaggy

1
@ Shaggy umumnya tidak, Anda bisa memasukkan yang lain untuk ikan haring merah, tetapi perampok dapat menggunakan semuanya
Stephen

1
Bisakah perampok menggunakan byte yang sama dua kali atau lebih?
Tn. Xcoder

2
@ Azulflame File-b adalah file yang dikaitkan dengan setiap urutan yang dapat diakses dengan mengganti Adengan a bdan menambahkan a .txt. Misalnya oeis.org/b4.txt akan mengakses file-b untuk urutan itu.
Wheat Wizard

Jawaban:


11

Haskell , A209229 , ( retak )

11 karakter (termasuk baris baru):

s<=[ ]
how!

Output Benar / Salah sebagai fungsi indikator untuk kekuatan 2:

1 => True
2 => True
3 => False
4 => True
5 => False
6 => False
7 => False
8 => True
9 => False
...

Input adalah bilangan bulat positif.


Apakah 0 memberi False?
H.PWiz

@ H.PWiz Kode saya tidak berfungsi untuk 0, crack Anda dapat melakukan apa pun yang Anda inginkan.
xnor

Retak! Sangat pintar ~
Lynn

@ Lynn Bagus sekali!
xnor


5

Haskell, A000045 ( retak )

Saya mengambil keputusan, saya pikir saya tlebih suka s.

Jadi mari kita gunakan 30 byte ini (termasuk baris baru) sebagai gantinya:

abcdeFgh|jklmnopqrtTuvwxyz
=()

Harap dicatat bahwa deskripsi tantangan umum menuntut itu

Jawaban harus mampu menghitung setiap istilah dalam file-b dari urutan [...].

Dalam hal ini, file-b naik ke angka 2000, yang jauh melampaui apa yang dapat dihitung menggunakan Int.





4

Haskell, A000045 ( Retak )

Semua orang suka angka Fibonacci, saya suka Haskell ...

Saya telah dengan hati-hati memilih 30 byte untuk Anda: huruf kecil kecuali f, idan t, Anda mendapatkan huruf besar Fdan Tdan simbol pipa |sebagai gantinya, dan tiga simbol =(), dan baris baru. Ini mereka lagi:

abcdeFgh|jklmnopqrsTuvwxyz
=()



4

Haskell, A009056 ( retak )

Satu lagi sederhana, sekarang lagi dengan cukup surat untuk membuatnya terlihat seperti Haskell biasa dan mungkin bagi Anda untuk membuat saya takjub dengan menemukan solusi yang sama sekali berbeda dari milik saya.

Urutannya adalah Bilangan> = 3 dan rangkaian karakter terdiri dari 30 byte ini:

{[abcdefghijklmnopqr uvwxyz]}.

Retak memiliki beberapa teknik yang bagus. Saya hanya memikirkan ini:

head . flip drop [ floor pi .. ]


1

3

C (C99), A000005 , 25 Bytes #, Retak!

Ini adalah byte untuk masalah penuh, mengambil n sebagai argumen baris perintah dan output menjawab stdout. (Spasi termasuk dalam bytecount).

<=>,;!"()*%+acdfhimnoprt 

ok saya bertanya-tanya lol. sebagai argumen baris perintah?
Conor O'Brien

Ya, saya akan membuatnya lebih jelas
dj0wns

1
Retak! ini menyenangkan: D
Conor O'Brien

3

Unary , A002275 , 1 Byte

Set byte:

0

Setidaknya saya harus mencobanya: 3

(Saya tidak berpikir itu akan sangat sulit dilihat karena setiap perintah dalam bahasa tersedia)


1
Mengapa tidak menyertakan semua byte untuk memaksimalkan skor Anda? Anda telah mencetak jumlah serendah mungkin, ketika tidak ada bedanya untuk memasukkan semua byte.
Wheat Wizard

Saya pikir kami akan mendapat skor rendah (maaf, saya baru di sini).
sonar235


@muddyfish Apakah input sebagai karakter diperbolehkan untuk brainfuck?
sonar235

@ sonar235 Secara umum kami mengizinkan input sebagai karakter untuk brainfuck. Meskipun karena nilai di sini melebihi 255, saya tidak berpikir jawaban yang menggunakannya bisa valid.
Wheat Wizard



3

Hexagony , A057077 , 77 byte

Urutan berkala 1, 1, -1, -1. Sebagai daftar:

a(0) = 1
a(1) = 1
a(2) = -1
a(3) = -1
a(4) = 1
a(5) = 1
a(6) = -1
   ...

Kumpulan karakter (diedit), yang mencakup baris baru dan karakter spasi:

!% & (), 0123456789;? @ ABCDEFGHIJKLMOPQRSTUVWXYZ ^ abcdefghijklmnopqrstuvwxyz [] #. 

Cobalah online!


Adakah alasan Anda memodifikasi rangkaian karakter?
Poke

1
@ Poke rupanya semakin tinggi jumlah byte semakin baik, jadi saya hanya menambahkan banyak perintah yang tidak berguna.
Adnan

3

Haskell, A000045 ( retak )

Itu retak, dan saya tidak akan memulai versi baru, tetapi jika Anda ingin bermain lebih banyak: itu mungkin tanpa y, dan itu mungkin untuk menjadi efisien.


Saya minta maaf karena memimpin Anda ke arah yang salah dengan memberikan a g. Mari kita lakukan hal yang sama tanpa!

Berikut adalah 29 byte tersisa (termasuk baris baru):

abcdeFh|jklmnopqrtTuvwxyz
=()

Sekali lagi, ingat bahwa Inttidak akan cukup untuk menghitung angka Fibonacci 2000 yang diperlukan karena ada dalam file-b.



3

Haskell, A000045 ( retak )

Ini kindof (seperti yang diumumkan) bukan versi baru, tetapi sangat berbeda. (Kanan?)

Saya masih berharap saya bisa membuat Anda menemukan kembali pengamatan kecil saya yang bagus.

Kali ini Anda diminta untuk mengimplementasikan deret Fibonacci menggunakan charset ukuran 17, yang (sejauh yang saya tahu) hanya berisi satu dua chars yang tidak dibutuhkan:

eilnt=(,).[ ]_:0!

Perhatikan bahwa tidak ada baris baru (tetapi jangan ragu untuk menampilkan versi yang membuatnya mudah dibaca) dan ingat bahwa Anda harus dapat menghitung angka Fibonacci ke-2000.



3

Cubix, A000027 (SAFE) 17 poin

!&')-/0;@Oiru.NSQ

Solusi saya:

!O!;i)!/u&!!r-)0'u;;!@

tonton online di sini

Saya awalnya melakukan ini tanpa .NSQtetapi saya pikir saya bisa menambahkannya dengan aman.

Penjelasan:

Urutan ini hanya "The Positive Integers". Namun, Cubix memiliki tiga perintah input i,, yang bertuliskan dalam satu karakter (mendorong -1jika input kosong), Ayang bertuliskan pada sisa input sebagai karakter (mendorong a -1ke sisi bawah tumpukan), dan I, yang membaca nomor berikutnya dari input (mendorong 0jika tidak ada kecocokan). Jadi secara alami, saya hanya menyediakan iyang dibaca dalam digit sebagai nilai ascii mereka. uh oh. Selain itu, -1adalah penanda yang biasa untuk akhir input, dalam hubungannya dengan ?jadi saya menyingkirkan ?, memaksa saya untuk menggunakan !(lewati instruksi berikutnya jika TOS tidak nol) untuk aliran kontrol. Akhirnya, saya pikir saya perlu &menyatukan angka untuk dicetakO (yang menampilkan bagian atas tumpukan sebagai angka), tetapi saya menyadari sekarang bahwa itu juga tidak perlu!

Bagian lain dari tantangan pada awalnya adalah tidak memiliki .karakter larangan, tetapi Anda dapat menggunakan pasangan !bukan jika Anda berhati-hati:

    ! O
    ! ;
i ) ! / u & ! !
r - ) 0 ' u ; ;
    ! @
    . .

i) : baca input, selisih.

!/ : jika puncak tumpukan adalah nol (ujung input), belok kiri

kiri:: ;O.@pop-up tumpukan, keluaran sebagai angka, berhenti

jika tidak:

u'0: dorong kode char 0ke atas tumpukan

)-r: increment, kurangi, dan putar

;; : pop top of stack dua kali

u& : digit gabungan

!!: net zero effect, sekarang kita i)kembali.


Cubix memiliki beberapa karakter noop kan? Mengapa Anda tidak menambahkannya untuk meningkatkan skor Anda? Atau merupakan bagian dari tantangan yang tidak ada noops.
Wheat Wizard

@Watwizard Saya memutuskan untuk berbelaskasih dan menambahkan .tetapi itu bisa dilakukan tanpa itu.
Giuseppe

3

Seed , A005408 (Nomor Ganjil) - Aman

Inilah yang sedikit lebih menantang. Anda dapat menggunakan karakter apa pun yang valid di Seed:

[0-9 ]

Anda seharusnya tidak bisa memaksakan kekerasan ini dalam satu minggu kecuali Anda memiliki monster komputer. Semoga berhasil! Itu mudah retak.

Petunjuk

Ini adalah program Befunge-98 yang digunakan dalam solusi saya: 9&2*1-.@( 9bisa dihapus, tapi solusi saya kebetulan punya

Larutan

8 47142938850356537668025719950342285215695875470457212766920093958965599014291682211474803930206233718243166021324700185443274842742744297183042397910454208210130742260519105651032450664856693714718759816232968955289663444878636053035645231246428917992493766505872029989544065894418166685284738859999912471659057565000392419689361271972485444731284404987238803115210428572945108908191097214978382112218242627719651728712577306652405452922782307249485947045215982784790396555726144526602778473387279897334709142853151393812930171163300904436548870603006549005515709074682843356844201220668045057407146751793470423217099467145255174198241606814578351260769359571053755888106818197239116973006365593563235361647743411341624822052103816968153274122434280200888824954875622811325064255818154979564925710534165572852442761249176778416688044630942040966271963723430245979221181930857841829694362184653939393940015797332978459794253176110314873994228261888801228999293570329618551223457182420746927212801550646743152754821640064626761542582557138452651970009253770914346130172884305622027370793496993281847017017643506435562229916984107083951938286577012273222191422054315198157936674247934699496471202544270325061352014830137178245082445717253260177560449757186762445707057028987371278573629077370632470496186218574320801798046510846708620502139560277546345198686675095078255875594169064796673074708822106659920187882062247609587560174781170641367430722951002242213604709887062481149928551745163110045572994991844223216663621203042075294195007458339984527333125093390189721042315604498435269143549420166732177200370228527273606218617171975362431824163269672003982537382982066136613799403024924018145511099557720492305303748099327810811511080314262364010281851651151072957475365629128068033597559560186625877942054704386175359499573139930378099420149452745731809033737756051947913924265484582800618244473333957173960222243311738522875022546610298627492222587971756897328087719407454153248557203886421828643453889090192355970705084245312184441674098515659253482621260617211786550204852895652236768886852209506535523414991099331857674826373947830587028494510697603296607361093480842935154672353288419699354739650168309017848485131553416956405911683526896232046773861961911767319373432460217755874481607587604361758089936007730253450733375831228127106295259261723611771334468553746160739548375950046831923765023329346333968732796413192682936767133122325481273354810124729664400173367781325488656859581438769940474229394692089519981810909719628263357284973442177568041416363386891516725592952892168077523560584005586276794967492051823290615767599202657060820223928678900774601616908031321346819422162123048834532926372862962159255934240435694566497798544870186550219886342379298214007368081326725550763589917206162393892085506551547475259270513853987294911388226039365971184089828739349642347312302559286882065147953715607221387657413593069535573044067517274676745306396611760657091792151803798859781616126637075577936361782593546481811651450365118155866449850474140044293772144065341051900055416408240857348697564252386403719942197789892382627153382011984996644288495699209129097948405810551134169739499539470610790009272281731894550593600643079188663110695127017324336488487580799309995227054576681630676222848231145106058050452439356753552872060820230589152143268436210090733908507724084889788244157692417246691477400856716677564609725979550100138132944851304473466485128295568194188600539248624248078558656162635444219199062786468487219220160009464328883337821175254405764395407405891483810757405446047244460754827113527540703326714751461178900155717130399854358953609995319006890674085682111514072508440632941090209366005504352890092326935445829213294943731517698438648298921337375443947066950275955144209037675013663600062205168551851984361951824731229113379464426979717688372371011461890139087487634586087688796134318950140718824105959727161482389914414206768064990410615468858520426399188835467970981786227122743162945627167772066100574532803061925537235491026486409948728571706557098859331941260622260924660292578136091523126589085799981416326395824628987154802653126685882440760385315869346960183809644486238810912663304360284449610976505715001267334297285036791711464142665122000857666018757370925847113798258537503747803972255591351740843663253694303946089997282812556281486820325652814785261116697261899511762129550421005941055852897451832731304151488058522478260009347144486599715629242208891126238083949281490804191584238425634093683587199278186505945727829025071885767559828670803412582690901456978557379916793144695491189633486065077294485660840922713748873840986104486221528464294334436081663106336911265802650605150347413103936140565054608396116572669757269475369570465915381045895991937087068526458273755454602799814909213983801968791431574508976448235055061998715636460946550584682626461010298101802277643570201189324102499951196290880892383380284543173390448406975616650185808619832614403133944687275834716343817926764699295672501869876060896683204343897481630037607159476461359111190545646447421653872016775582115425356868533678655969328210255235050133718364831289991244684695035034122861927276046255405376531096051541299607470934463981741370397268760811035606321455156217990078359217247117349544774085111287345436916077577032709684005131011429476229617901273007027774182864475737502587896225475248267937497254066190335088823904767397814233350286976811901982274477445433872253983823904938249655089770642137858608313524715533520654523880832056453080193644871440738737277389718589793074725139142291918837706550037934799585495183374639955887618135803388399608755212147742199481865453122900714456703147150994585431640652462593333773031385396586933380738103697887063571042512186708015948688088011290197524699274772775288900864690592106393483764109837848793374117655194139018455509931621247697015323332300969105814058088442693320033876473960017819576425062784644138417943454576404265382986995583045527928832

Bagaimana Anda menghasilkan ini?
Christopher

@ 2EZ4RTZ Nyeri, dan dengan sumber Python sebagai referensi. Mungkin bisa banyak bermain golf.
TehPers



2

cQuents , A000027 , Retak


 !"#%&'()*+,-./0123456789:;?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~

Betul sekali! Anda mendapatkan semua ASCII! Tunggu ... tidak ada $... apa $lagi yang ada di cQuents? Oh, ya, indeks sudah tertanam. Yah, keberuntungan: /

Solusi yang Dimaksud:

#|A:A

Cobalah online!



@ Adnan ya itu berhasil, saya kira saya seharusnya tidak membukanya sebanyak yang saya lakukan: PI tidak bisa memikirkan cara berbeda untuk melakukannya, pekerjaan yang baik. Menambahkan solusi yang dimaksudkan.
Stephen


2

Ruby , A000004 , 5 byte, Retak

Hanya main-main untuk memulai. Seharusnya mudah bagi siapa pun yang terbiasa dengan Ruby. Ini skor rendah, tapi terserahlah.

/np.$

Eksploitasi retak, tidak disengaja

Retak (jawaban yang dimaksudkan menggunakan nbendera)



@ Adnan Eh, saya akan menerimanya. Seharusnya diperlukan nbendera (yang merupakan alasannya dalam urutan byte, dan akan menjadi $.sama dengan 1)
Value Ink



2

R, A000290 , ( retak )

Set byte:

()%cfinotu

tidak c, tapi segalanya untuk apa function? Mengerikan sekali. Saya tahu bagaimana melakukan ini kecuali membaca masukan ...
Giuseppe

@Giuseppe woops, pundaknya amenjadi a c. Maaf.
JAD

1
Inilah yang saya dapatkan untuk melakukan omong kosong ini secara manual ...
JAD

Jangan khawatir; ini cukup tangguh!
Giuseppe



2

cQuents , A000217 , Retak

Byteset:

$:=1;
\-

Perhatikan bahwa ini menggunakan fitur yang belum saya dorong dokumentasi, jadi saya akan mendorongnya malam ini, jika Anda menunggu sampai saat itu. (Atau Anda dapat membaca kode sumber saya ... bersenang-senang). Dokumentasi didorong. Akan lebih sedikit satu byte jika perbaikan bug baru-baru ini di TIO.

Solusi yang dimaksudkan:

=1-1:--\1$ ;$

Cobalah secara Online!



2

JavaScript (ES6), 13 10 byte, A000045 , Retak

Ini seharusnya mudah.

Ini adalah urutan Fibonacci: F (n) = F (n-1) + F (n-2) dengan F (0) = 0 dan F (1) = 1.

Set byte:

$()-:<=>?[]_~

Edit:

Itu bahkan dapat dilakukan dengan 10 byte berikut:

$()-:=>?_~


1
Ini bukan [kode-golf]: "Jawaban akan dicetak dengan jumlah byte dalam set byte dengan skor sedang baik." Lebih banyak byte lebih baik.
LarsW

@ LarsW di sisi lain, lebih banyak byte juga membuatnya lebih mudah untuk memecahkan :)
JAD




2

R, A105311 , ( retak )

'%(),:=acdeginpstx

Mari kita coba ini tanpa latau o.

Karena ini telah retak, solusi yang dimaksudkan:

cat(diag(diag((a=scan()))%x%diag((a==a):a)),sep=''). diagadalah fungsi yang menarik, yang dapat digunakan dalam tiga cara berbeda. Ketika disajikan dengan integer tunggal ( diag(n)), ia menciptakan matriks NxN dengan 1 pada diagonal. Ketika disajikan dengan vektor ( diag(1:n)), ia menciptakan matriks NxN dengan vektor pada diagonal. Ketika disajikan dengan matriks ( diag(diag(n))), ia mengembalikan diagonal sebagai vektor. %x%menghitung produk Kronecker dari dua matriks, di mana setiap elemen dalam matriks 1 dikalikan dengan setiap elemen dalam matriks 2 secara terpisah. Melakukan ini dengan nmatriks identitas panjang dan 1:nmatriks diagonal, menciptakan n^2matriks diagonal panjang dengan waktu yang 1:nberulang n. diagmengekstraknya lagi, dan catmencetak.


1
ini akan menjadi lebih menyenangkan :)
Giuseppe

apakah ini termasuk baris baru?
Giuseppe

@Giuseppe Tidak ada baris baru
JAD

1
@ Giuseppe dan saya baru saja mengecek dua kali lipat, byteset ini benar
JAD

[retak! ] ( codegolf.stackexchange.com/a/136457/67312 ) - Saya (salah) digunakan %o%sebelum saya menyadari itu %x%ada. Saya kira saya bisa melakukan 'i'=='i'untuk 1tapi cara baik bekerja, jadi.
Giuseppe
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.