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.

Wisaya Gandum
sumber
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.

Tidak
sumber
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

Python 2 , A000045 ( Retak )

ml:= input(as,forge)

ini berisi spasi putih dan baris baru
Cobalah Online!
Solusi yang dimaksudkan

tongkat
sumber
1
+1 Saya terkejut ini tidak digunakan +sama sekali
Tn. Xcoder
2
Selamat atas 10k bbt :)
Adnan
Cracked
Adnan
@ Mr.Xcoder Tidak terlalu mengenal python, tetapi apakah akan plusberhasil?
JAD
@JarkoDubbeldam Tidak, sumakan
Tn. Xcoder
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.

Sievers Kristen
sumber
Retak !
Lynn
Cracked
H.PWiz
4

Oktaf, A000290 , Retak !

Urutannya adalah angka kuadrat: 0, 1, 4, 9, 16, 25, 36, 49 ... (sehingga Anda tidak perlu memeriksa tautannya).

'()/@^_
Stewie Griffin
sumber
Retak!
Conor O'Brien
Itu memang solusi yang dimaksudkan :)
Stewie Griffin
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
=()
Sievers Kristen
sumber
Cracked
xnor
4

Haskell, A034262 , 43 byte, retak

!"#%',.=?ABCDEFGHIJKLMNOPQRSTUVWXYZ[]_{|}~

Menghitung a(n) = n³ + n.

Laikoni
sumber
Tidak bisa mendapatkan file-b sekarang. Apakah mengembalikan Intcukup baik?
Christian Sievers
1
Retak ?
Christian Sievers
@ChristianSievers Ya, itulah solusi saya.
Laikoni
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 .. ]

Sievers Kristen
sumber
1
Retak .
nimi
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 
dj0wns
sumber
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)

sonar235
sumber
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
1
Cracked
Blue
@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

JavaScript (ES6), 17 byte, A000290 ( Retak )

Sekali lagi, ini adalah urutan kuadrat sederhana a (n) = n 2 .

Set byte:

$()=>CI`abelotv{}
Arnauld
sumber
Retak!
LarsW
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!

Adnan
sumber
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.

Sievers Kristen
sumber
Cracked
nimi
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.

Sievers Kristen
sumber
Retak .
nimi
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.

Giuseppe
sumber
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
Tehers
sumber
Bagaimana Anda menghasilkan ini?
Christopher
@ 2EZ4RTZ Nyeri, dan dengan sumber Python sebagai referensi. Mungkin bisa banyak bermain golf.
TehPers
2

R, A000142 , ( Retak )

Set byte:

-()*,`=cfinotu

Solusi yang dimaksudkan:

f=function(n,c=n==n)'if'(n,f(n-(n==n),c*n),c*(n==n))

JAD
sumber
retak!
Giuseppe
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!

Stephen
sumber
Retak ?
Adnan
@ 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

Python 3, A007504 ( Retak )

Byteset ini, termasuk baris baru:

bfuwo)nm1h[=(t+;0a
sig%pr, le:]

Kode saya tidak memberikan output tanpa batas, tetapi dapat menghitung seluruh daftar-b.

Azulflame
sumber
1
Selamat datang di PPCG!
Zacharý
1
Cracked
Jonathan Allan
1
Memo yang saya gunakan .:(
Jonathan Allan
1
Saya sudah memperbaiki celahnya.
Jonathan Allan
1
... dan bermigrasi ke Python 3.
Jonathan Allan
2

R, A000290 , ( retak )

Set byte:

()%cfinotu
JAD
sumber
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
retak
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!

Stephen
sumber
Retak!
notjagan
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:

$()-:=>?_~
Ra8
sumber
Retak!
Kritixi Lithos
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

Befunge , A000142 , 29 Bytes, ( Retak )

Byte Set: @.$_ ^*:\v>-1&

Jika Anda tidak tahu, set Byte itu termasuk spasi.

Ini harus cukup mudah dipecahkan.

Sunting: Lupa "A" sebelum OEIS

Jordan
sumber
Cracked
KSmarts
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.

JAD
sumber
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