Kısıtlı mini zorluklar Cop's Thread


33

Soyguncunun ipliği

Polis olarak göreviniz üç şey seçmek:

  • Bir programlama dili

  • Bir OEIS dizisi

  • Bir bayt kümesi

Daha sonra gizlice setteki sadece baytları kullanarak nt terim sırasını hesaplayan o dilde bir program yazacaksınız. Üç bilgiyi açığa çıkaracaksınız, böylece soyguncular programı anlamaya çalışacaklar.

Cevaplar, baytta ayarlanan bayt sayısı ile daha fazla puanın iyi olması ile puanlanacaktır. Çatlak cevaplar otomatik 0 puan alır. Yanıtınız bir hafta sonra çözülmezse, hedeflenen programı ortaya çıkarabilir ve cevabınızı "güvenli" olarak işaretleyebilirsiniz.

Cevaplar, dizinin b-dosyalarındaki her terimi hesaplayabilmelidir, ancak sonrasında herhangi bir terim hesaplamak zorunda değildir.

Diziler hem polisler hem de hırsızlar için indekslenmiş olabilir.

Kodunuzun verilen bayt kümesiyle eşleşip eşleşmediğini kontrol eden bir Python Komut Dosyası .


1
Düşük puan daha iyi? Veya daha yüksek? Yani özünde, bir çözüm bulduktan sonra başkasının seçilen dilde bir program yapmasını zorlaştıran sınırlı bir karakter seti bulmaya çalışıyoruz.
BradC

1
Setimizdeki tüm baytları kullanmamız gerekir mi? Evet sanırım ama muhtemelen meydan okumada belirtilmeli.
Shaggy,

1
@Shaggy genellikle hayır, kırmızı ringa balığı için başkalarını içerebilir, ancak hırsızlar her şeyi kullanabilir
Stephen

1
Soyguncular aynı byte'ı iki veya daha fazla kullanabilir mi?
Bay Xcoder,

2
@Azulflame b-dosyaları, Aa ile değiştirilerek ve a bekleyerek erişilebilecek her sekansla ilişkilendirilmiş dosyalardır .txt. Örneğin oeis.org/b4.txt , bu dizinin b-dosyalarına erişir .
Buğday Sihirbazı,

Yanıtlar:


11

Haskell , A209229 , ( çatlak )

11 karakter (yeni satır dahil):

s<=[ ]
how!

2 güçleri için gösterge işlevi olarak Doğru / Yanlış çıktısı verir:

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

Girişler pozitif tamsayılardır.


0 yanlış veriyor mu?
H.PWiz

@ H.PWiz Kodum 0 için çalışmıyor, çatlağınız ne istersen yapabilir.
xnor

Çatlak! Çok zekice ~
Lynn '

@Lynn Güzel bitti!
xnor


5

Haskell, A000045 ( çatlak )

Kararımı verdim, sanırım tdaha fazlasını seviyorum s.

Öyleyse bu 30 baytı (newline dahil) kullanalım:

abcdeFgh|jklmnopqrtTuvwxyz
=()

Genel meydan okuma tarifinin şunları gerektirdiğini lütfen unutmayın.

Cevaplar, [...] dizisinin b-dosyalarındaki her terimi hesaplayabilmelidir.

Bu durumda, b dosyası kullanarak hesaplanabilecek olanın çok ötesinde olan 2000'inci sayıya kadar çıkar Int.





4

Haskell, A000045 ( Kırık )

Herkes Fibonacci sayılarını sever, Haskell'i de severim ...

Hariç küçük harf: Ben dikkatle sizin için 30 bayt seçmiş f, ive tsen büyük harf olsun, Fve Tve boru sembolü |yerine, üç sembol =()ve yeni satır. İşte yine onlar:

abcdeFgh|jklmnopqrsTuvwxyz
=()



4

Haskell, A009056 ( çatlak )

Başka bir basit, şimdi yine sıradan Haskell gibi görünmesi için yeterli harfle ve belki de benimkinden tamamen farklı bir çözüm bularak beni şaşırtmanız için.

Sıra, Numaralar> = 3'tür ve karakter kümesi bu 30 bayttan oluşur:

{[abcdefghijklmnopqr uvwxyz]}.

Çatlakta bazı güzel teknikler var. Sadece şunu düşünüyordum:

head . flip drop [ floor pi .. ]



3

C (C99), A000005 , 25 Bayt #, Kırık!

Bunlar tam bir problemin baytlarıdır, n'yi bir komut satırı argümanı olarak alır ve stdout'a cevap verir (Space bytecount'a dahil edilir).

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

tamam lol merak ediyordum. komut satırı argümanı olarak?
Conor O'Brien,

Evet, daha net hale getireceğim
dj0wns

1
Çatlak! bu eğlenceliydi: D
Conor O'Brien

3

Tekli , A002275 , 1 bayt

Bayt kümesi:

0

En azından denemeliydim: 3

(Dilde her komutun mevcut olması gibi görmenin özellikle zor olacağını sanmıyorum)


1
Puanınızı en üst düzeye çıkarmak için neden tüm baytları dahil etmiyorsunuz? Tüm baytları dahil etmenin bir önemi olmayacaksa, mümkün olan en düşük tutarı aldınız.
Buğday Sihirbazı,

Düşük bir puan alacağımızı sanıyordum (üzgünüm, burada yeniyim).
sonar235


@muddyfish Beyin fırtınası için bir karakter olarak girilebilir mi?
sonar235

@ sonar235 Genel olarak beyin tıkanıklığı için karakter olarak girişe izin veriyoruz. Buradaki değerler 255'i geçmesine rağmen, bunları kullanan bir cevabın geçerli olabileceğini düşünmüyorum.
Buğday Sihirbazı,



3

Altıgen , A057077 , 77 bayt

Periyodik sekansı 1, 1, -1, -1. Liste olarak:

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

Yeni satır ve boşluk karakteri içeren karakter kümesi (düzenlenmiş):

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

Çevrimiçi deneyin!


Karakter setini değiştirmenin bir nedeni var mı?
Poke

1
@Poke görünüşte bayt daha iyi sayılır, bu yüzden yararlı olmayan komutlar ekledim.
Adnan,

3

Haskell, A000045 ( çatlak )

Kırıldı ve yeni bir sürüm başlatmayacağım, ancak daha fazla oynamak istiyorsanız: bu mümkün değil yve verimli olmak mümkün.


Sizi yanlış yönlere yönlendirdiğiniz için özür dilerim g. Aynı olmadan yapalım!

İşte kalan 29 bayt (newline dahil):

abcdeFh|jklmnopqrtTuvwxyz
=()

Yine, Intb-dosyasında olduğu için ihtiyaç duyulan 2000'inci Fibonacci sayısını hesaplamak için yeterli olmayacağını unutmayın .



3

Haskell, A000045 ( çatlak )

Bu (ilan edildiği gibi) yeni bir sürüm değil, tamamen farklı bir tür. (Sağ?)

Hala küçük gözlemlerimi tekrar keşfetmeni sağlayabilirim.

Bu sefer (bildiğim kadarıyla gibi) yalnızca içeren büyüklüğü 17 bir karakter kümesi kullanılarak Fibonacci dizisini uygulamak istenir bir iki gereksiz karakter:

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

Yeni bir satır olmadığını unutmayın (ancak okunabilirliği olan bir sürümü göstermekten çekinmeyin) ve 2000'inci Fibonacci sayısını hesaplayabileceğinizi unutmayın.



3

Cubix, A000027 (GÜVENLİ) 17 puan

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

Çözümüm:

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

buradan çevrimiçi izleyin

Aslında bunu olmadan yaptım .NSQama güvenli bir şekilde ekleyebileceğimi düşündüm.

Açıklama:

Bu dizi sadece "Olumlu Tamsayılar" dir. Bununla birlikte, Cubix, girişin geri kalanında karakter olarak okuyan (yığının üstüne iterek ), itek bir karakterde okuyan ( -1giriş boşsa iterek ) üç giriş komutuna sahiptir ve girişin bir sonraki numarası ( bir eşleşme yoksa iterek ). Doğal olarak, sadece rakamları ascii değeri olarak okuyanlar sağladım. A aa. Ek olarak, girişin sonu için genel işaretleyicidir, bununla birlikte kurtuldum, kontrol akışı için beni kullanmaya zorluyorum (TOS sıfır değilse bir sonraki talimatı atla). Sonunda, yazdırmak için rakamları birleştirmem gerektiğini düşündüm.A-1I0i-1??!&O (yığının tepesini bir sayı olarak çıkaran), ama bunun da gerekli olmadığını anladım!

Mücadelenin bir başka kısmı, başlangıçta .no-op karakterinin olmamasıydı, ancak !dikkatli olursanız bunun yerine çiftlerini kullanabilirsiniz :

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

i) : girdi girişi, artış.

!/ : yığının üstü sıfırsa (girişin sonu), sola dönün

solda:: ;O.@yığının popu, sayı olarak çıktı, durma.

aksi takdirde:

u'0: char kodunu 0yığının üstüne itme

)-r: artış, çıkarma ve döndürme

;; : iki kez yığının pop

u& : rakamları birleştirmek

!!: net sıfır efekti, şimdi i)tekrar varız .


Cubix’in bazı noop karakterleri var mı? Neden puanınızı artırmak için bunları eklemiyorsunuz? Ya da noops olmadığı mücadelenin bir parçası.
Buğday Sihirbazı,

@WheatWizard Merhametli olmaya ve eklemeye karar verdim, .ancak onsuz da yapılabilir.
Giuseppe,

3

Tohum , A005408 (Tek Sayı) - Güvenli

İşte biraz daha zor olanı. Tohumda geçerli olan herhangi bir karakteri kullanabilirsiniz:

[0-9 ]

Bir bilgisayar canavarı yoksa, bunu haftada bir kaba kuvvet uygulayamamalısın. İyi şanslar! Kırılabilir.

İpucu

Bu benim çözümümde kullanılan Befunge-98 programı: 9&2*1-.@( 9kaldırılabilir, ancak benim çözümüm sadece oldu

Çözüm

8 47142938850356537668025719950342285215695875470457212766920093958965599014291682211474803930206233718243166021324700185443274842742744297183042397910454208210130742260519105651032450664856693714718759816232968955289663444878636053035645231246428917992493766505872029989544065894418166685284738859999912471659057565000392419689361271972485444731284404987238803115210428572945108908191097214978382112218242627719651728712577306652405452922782307249485947045215982784790396555726144526602778473387279897334709142853151393812930171163300904436548870603006549005515709074682843356844201220668045057407146751793470423217099467145255174198241606814578351260769359571053755888106818197239116973006365593563235361647743411341624822052103816968153274122434280200888824954875622811325064255818154979564925710534165572852442761249176778416688044630942040966271963723430245979221181930857841829694362184653939393940015797332978459794253176110314873994228261888801228999293570329618551223457182420746927212801550646743152754821640064626761542582557138452651970009253770914346130172884305622027370793496993281847017017643506435562229916984107083951938286577012273222191422054315198157936674247934699496471202544270325061352014830137178245082445717253260177560449757186762445707057028987371278573629077370632470496186218574320801798046510846708620502139560277546345198686675095078255875594169064796673074708822106659920187882062247609587560174781170641367430722951002242213604709887062481149928551745163110045572994991844223216663621203042075294195007458339984527333125093390189721042315604498435269143549420166732177200370228527273606218617171975362431824163269672003982537382982066136613799403024924018145511099557720492305303748099327810811511080314262364010281851651151072957475365629128068033597559560186625877942054704386175359499573139930378099420149452745731809033737756051947913924265484582800618244473333957173960222243311738522875022546610298627492222587971756897328087719407454153248557203886421828643453889090192355970705084245312184441674098515659253482621260617211786550204852895652236768886852209506535523414991099331857674826373947830587028494510697603296607361093480842935154672353288419699354739650168309017848485131553416956405911683526896232046773861961911767319373432460217755874481607587604361758089936007730253450733375831228127106295259261723611771334468553746160739548375950046831923765023329346333968732796413192682936767133122325481273354810124729664400173367781325488656859581438769940474229394692089519981810909719628263357284973442177568041416363386891516725592952892168077523560584005586276794967492051823290615767599202657060820223928678900774601616908031321346819422162123048834532926372862962159255934240435694566497798544870186550219886342379298214007368081326725550763589917206162393892085506551547475259270513853987294911388226039365971184089828739349642347312302559286882065147953715607221387657413593069535573044067517274676745306396611760657091792151803798859781616126637075577936361782593546481811651450365118155866449850474140044293772144065341051900055416408240857348697564252386403719942197789892382627153382011984996644288495699209129097948405810551134169739499539470610790009272281731894550593600643079188663110695127017324336488487580799309995227054576681630676222848231145106058050452439356753552872060820230589152143268436210090733908507724084889788244157692417246691477400856716677564609725979550100138132944851304473466485128295568194188600539248624248078558656162635444219199062786468487219220160009464328883337821175254405764395407405891483810757405446047244460754827113527540703326714751461178900155717130399854358953609995319006890674085682111514072508440632941090209366005504352890092326935445829213294943731517698438648298921337375443947066950275955144209037675013663600062205168551851984361951824731229113379464426979717688372371011461890139087487634586087688796134318950140718824105959727161482389914414206768064990410615468858520426399188835467970981786227122743162945627167772066100574532803061925537235491026486409948728571706557098859331941260622260924660292578136091523126589085799981416326395824628987154802653126685882440760385315869346960183809644486238810912663304360284449610976505715001267334297285036791711464142665122000857666018757370925847113798258537503747803972255591351740843663253694303946089997282812556281486820325652814785261116697261899511762129550421005941055852897451832731304151488058522478260009347144486599715629242208891126238083949281490804191584238425634093683587199278186505945727829025071885767559828670803412582690901456978557379916793144695491189633486065077294485660840922713748873840986104486221528464294334436081663106336911265802650605150347413103936140565054608396116572669757269475369570465915381045895991937087068526458273755454602799814909213983801968791431574508976448235055061998715636460946550584682626461010298101802277643570201189324102499951196290880892383380284543173390448406975616650185808619832614403133944687275834716343817926764699295672501869876060896683204343897481630037607159476461359111190545646447421653872016775582115425356868533678655969328210255235050133718364831289991244684695035034122861927276046255405376531096051541299607470934463981741370397268760811035606321455156217990078359217247117349544774085111287345436916077577032709684005131011429476229617901273007027774182864475737502587896225475248267937497254066190335088823904767397814233350286976811901982274477445433872253983823904938249655089770642137858608313524715533520654523880832056453080193644871440738737277389718589793074725139142291918837706550037934799585495183374639955887618135803388399608755212147742199481865453122900714456703147150994585431640652462593333773031385396586933380738103697887063571042512186708015948688088011290197524699274772775288900864690592106393483764109837848793374117655194139018455509931621247697015323332300969105814058088442693320033876473960017819576425062784644138417943454576404265382986995583045527928832

Bunu nasıl ürettiniz?
Christopher,

@ 2EZ4RTZ Acı verici ve Python'un kaynağı olarak referans. Muhtemelen olsa çok golf oynayabilir.
TehPers



2

cQuents , A000027 , Kırık


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

Doğru! Tüm ASCII'yi aldın! Bekle ... hayır $... $cQuents'ta yine ne var ? Evet, indeks yerleşik. Eh, zor şans:

Amaçlanan Çözüm:

#|A:A

Çevrimiçi deneyin!



@Adnan yup işe yarıyor, sanırım açtım kadar açmamalıydım: PI yapmanın farklı bir yolunu düşünemiyordu, iyi iş. Amaçlanan çözüm eklendi.
Stephen,






2

cQuents , A000217 , Kırık

Byteset:

$:=1;
\-

Bunun, henüz belgeleri zorlamadığım bir özellik kullandığını unutmayın, o zamana kadar beklerseniz bu gece bunu zorlayacağım. (Ya da kaynak kodumu kullanarak ... ... eğlenebilirsiniz). Belgeler itti. Son bir hata TIO'da olsaydı bir bayt az olurdu.

Amaçlanan çözüm:

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

Çevrimiçi Deneyin!



2

JavaScript (ES6), 13 10 bayt, A000045 , kırık

Bu kolay olmalı.

Bu Fibonacci dizisidir: F (n) = F (n-1) + F (n-2), F (0) = 0 ve F (1) = 1'dir.

Bayt kümesi:

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

Düzenle:

Aşağıdaki 10 bayt ile bile yapılabilir:

$()-:=>?_~


1
Bu [code-golf] değil: "Yanıtlar, skorun iyi olmasıyla ayarlanan bayt sayısında byte ile puanlanacaktır." Daha fazla bayt daha iyi.
LarsW

Öte yandan, @LarsW, daha fazla bayt ayrıca çatlamayı da kolaylaştırıyor :)
JAD



2

Befunge , A000142 , 29 Bayt, ( Kırık )

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

Söyleyemezseniz, Byte kümesinin bir boşluk içerdiğini söyleyin.

Bu çözmek için orta derecede kolay olmalıdır .

Düzenleme: OEIS'ten önceki "A" yı unuttum



2

R, A105311 , ( çatlak )

'%(),:=acdeginpstx

Bunu lveya olmadan deneyelim o.

Bu kırıldığından beri, amaçlanan çözüm:

cat(diag(diag((a=scan()))%x%diag((a==a):a)),sep=''). diagüç farklı şekilde kullanılabilen ilginç bir fonksiyondur. Tek bir tamsayı ( diag(n)) ile sunulduğunda , köşegen üzerinde 1 ile bir NxN matrisi oluşturur. Bir vektörle ( diag(1:n)) sunulduğunda , vektörde köşegen üzerinde bir NxN matrisi oluşturur. Bir matris ( diag(diag(n))) ile sunulduğunda , köşegeni vektör olarak döndürür. %x%Matris 1'deki her bir elementin ayrı ayrı matris 2'deki her bir element ile çarpıldığı iki matrisin Kronecker ürünü hesaplandı. Bunu bir uzunluk nkimliği matrisi ve çapraz bir matris ile yapmak, tekrarlanan zamanlarla 1:nbir uzunluk n^2çapraz matrisi oluşturur . tekrar ayıklar ve yazdırır.1:nndiagcat


1
bu daha da eğlenceli olacak :)
Giuseppe

buna yeni bir satır var mı?
Giuseppe

@Giuseppe Yeni hat yok
JAD

1
@Giuseppe ve ben sadece çift kontrol ettikten sonra bu bayt doğru mu
JAD

[çatlak! ] ( codegolf.stackexchange.com/a/136457/67312 ) - Var olduğunu anlamadan%o% önce ben (yanlış) kullandım %x%. Ben yapmış olabilir sanırım 'i'=='i'için 1öyle, ama her iki şekilde işler.
Giuseppe
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.