Polyglot Anagrams Cops Konuyu


44

Bu meydan okuma iki konu var. Bu polislerin ipliği. Soyguncuların ipliği burada bulunur .

Buradaki zorluk, bir OEIS dizisi seçmek ve iki tam dilde, STDIN aracılığıyla bir n verildiğinde sıradaki o nci maddeyi üreten iki farklı dilde veya n'nin herhangi bir pozitif sayı olduğu başka bir standart girdi formunu yazmaktır. Ancak iki programınız anagram olmalıdır, yani her biri diğerinin harflerinden yeniden düzenlenebilir.

Programlar, sayının ondalık sayısını ve ardından isteğe bağlı boşlukları STDOUT'a vermelidir. Programlar STDERR'ye gönderilebilir, ancak göz ardı edilmeli ve eğer gizli durum böyle olursa, durum böyle olduğu açıkça belirtilmelidir.

İsterseniz karakter koduyla da çıktı alabilirsiniz. Ancak, gizli çözümünüzde bunu yaparsanız, gönderiminizin gövdesinde böyle bir durum belirtmeniz gerekir.

Daha sonra OEIS numarasını, kaynak kodunu ve adını sunacak bir içinde bulunduğu dili.

Soyguncular, sunmuş olduğunuzdan başka bir dilde çalışan orijinal gönderinin bir anagramını bulurlarsa gönderiminizi kıracaklardır. Bir cevabı kırmak için sadece diziyi oluşturan ve orijinalin bir anagramı olan herhangi bir dili ve programı bulmaları gerekir , mutlaka düşündüğünüz cevabı değil.

Böylece, sembol listesini kullanarak görevi yapan herhangi bir dili bulmayı olabildiğince zorlaştırmaya teşvik edilirsiniz.

puanlama

Bu bu yüzden kırılmamış en kısa program kazanan.

Diller

Önerilen iki çözüm her iki dilde de görevi tamamlamazsa, diller farklı olarak değerlendirilecektir. Bu, ne polisin çözümü ne de soyguncunun çözümü, diğerinin dilinde doğru çıktı üretmediği sürece aynı dilin farklı sürümlerini içerecektir .

Örneğin, sırasıyla A ve B dilinde iki ve 1 numaralı çözümler varsa, 2. çözüm A dilinde doğru çıktı üretmemeli ve 1. çözüm B dilinde doğru çıktı üretmemelidir.

Emniyet

Gönderiminiz bir hafta boyunca açıldıktan sonra, çözümünüzü gönderebilir ve gönderinizi güvenli ilan edebilirsiniz. Bir hafta sonra bir çözüm göndermemeyi seçerseniz, cevabınız hala kırılabilir.


4
Fikirler için rastgele OEIS
mbomb007

Tercümana bayrak gibi perl gibi kullanmak isteyen dillerle nasıl çalışır? Diskalifiye edildiler mi? Bayraklar kodun bir parçası olarak sayılıyor mu? Bayraklar "serbest" mi (koda dahil edilmemiş veya hiç gösterilmemiştir)?
Emigna

Gizli program bir hata ile çıkabilir mi (çıktı üretildikten sonra)? Bu cevapta belirtilmeli mi?
Luis Mendo

1
Bunun başkası için faydalı olup olmadığından emin değilim, ancak bu kalan eksik karakterleri veya yinelenen karakterleri vurgular: codepen.io/anon/pen/BQjxRK
Dom Hastings

1
İlk önce en eski olan, cevaplanmamış cevapları gösteren bir yığın pasajı olsaydı iyi olurdu.
mbomb007

Yanıtlar:


15

Python 2, 118 bayt, A042545 Kırık

i=input();s=1/(801**.5-28);a=[0,1]
for p in range(i):a+=[a[-2]+a[-1]*int(s)];s=1/(s-int(s))
print a[i]#,,,.//000fhlmo|

Önemsiz bir dizi uygulamak istemiyordum, bu yüzden PPCG kullanıcı kimliğime gitmeye karar verdim. Bunu önce başka bir dilde yazdım, bu dilin ne olduğu hakkında size bir ipucu vermeliyim, bununla birlikte, diğer dilde kırılmadan önce bunun bir golf dilinde kırılacağına 100 dolar yatırdım.

Not: Kayan nokta hassasiyet hataları nedeniyle, bu yalnızca 14 girişe kadar doğrudur. Amaçlanan çözüm aynı şekildedir.

Amaçlanan çözüm, JavaScript (ES7)

for(i=prompt(),s=1/(801**.5-28),a=[1,0];i--;s=1/(s-n))
  n=s|0,a.unshift(a[1]+a[0]*n);
alert(a[0])  //#+2:[]giiiiinnpt

Python çözümü ile hemen hemen aynı şekilde çalışır, ancak JS negatif endekslemeyi desteklemediği için sekans, en küçükten ziyade en büyükten önce depolanır.


2
İşe A042545 (15) davasını alamıyorum. OEIS, 53000053 olduğunu söylüyor, ancak programınız 27666361 (en azından makinemde) olduğunu söylüyor.
boboquack

@boboquack Çıktı 16aslında 53000053, ancak bundan sonra eşleşen terimler yok gibi görünüyor. Nedenini merak ediyorum ...
ETHProductions

Belki de giderek kötüleşen bir kayan nokta hatası olabilir?
boboquack


1
Kahretsin, haklıydım! :( Bu benim bulduğum kadar yakındı: gist.github.com/dom111/bd9be933cb8ccd0e303601bf73d525b6 Yine de antrenman için teşekkürler, ihtiyacım vardı |()ama alamadım!
Dom Hastings

10

Brain-Flak, 24 bayt, A000290 , Güvenli

Yine başka bir kare çözüm. Bu sefer parantez dışında hiçbir şey yok

({(({}[()])()){}[()]}{})

Amaçlanan çözüm, bacaların yerine kuyruk kullanan beyin- lafının bir versiyonu olan Beyin-Flueue'dur . Program şuydu:

({(({})[()]){}}{})[()()]

Dillerin farklı olduğu düşünülür, çünkü iki programdan hiçbiri diğer dilde çalıştırıldığında durmaz.


Karakter kodunu kullanarak giriş / çıkış izin verilirse, bu Glypho içinde işe yarar ...
jimmy23013 21

@ jimmy23013 Glypho nedir?
Buğday Sihirbazı

6
esolangs.org/wiki/Glypho ((([{}{}{]]}[)))((){))(}
jimmy23013 21

@WheatWizard Çatlaksa cevabı düzenleyebilir misiniz?
mbomb007 11:16

@ mbomb007 Kırık değil
Buğday Sihirbazı

7

Python 2, 38 bayt, A000290 Emigna'dan Kırık

def e(X):return X*X
print e(input())##

Bu muhtemelen kırması çok kolay olacaktır. Bunu çoğunlukla bir başlangıç ​​noktası olarak gönderiyorum.

CJam’da Orignial çözümü:

ri:XX*e#def ()return X
e#pnt (input())


7

CJam , 7 bayt, A005843 Kırıldı!

ri2*e#^

Bu temel bir 2*ndizi.

Açıklama:

r          e# read input
 i         e# convert to integer
  2*       e# multiply it by 2
    e#^    e# this is a comment that is ignored by the interpreter

Çevrimiçi deneyin!


Orijinal Çözüm, Havuç

#^i*2er

Havuç benim tarafımdan yaratılmış bir esolang. Bunu uzun zaman önce geliştirmeyi bıraktım. Bunu seçmemin nedeni, diğer dillerin kodun gereksiz kısımlarını yorumlamanın zor olacağını ummamdı.

Açıklama:

#^            This pushes the input to the stack (anything before the ^ is the stack)
  i           Convert stack to integer
   *2         Multiply it by 2
     er       These are ignored because they are not Carrot commands
              Implicit output

Çevrimiçi deneyin!


1
ri#e^*2*üstelleşme yerine çarpma olsaydı , Jelly'de çalışırdı. Çok yakın ...
ETHproductions

3

İçimde her şey vardı r, pyth. Bunun için orijinal kodu görmek heyecan verici.
Emigna

1
@Emigna Orijinal kodu ekledim
Kritixi Lithos




5

Python 2, 25 bayt, A000583 , kırık

Y=input("");print`Y**4`,X

Bu program çıktıyı yazdırdıktan sonra bir hata ile çıkıyor.


Gizli kodum (çatlak çözümden büyük ölçüde farklı!):

Aslında , 25 bayt

4,n`*`Y")ii(*nppruttY;="X

Çevrimiçi deneyin!

Açıklama:

4,n`*`Y")ii(*nppruttY;="X
4,n                        input, repeat 4 times
   `*`Y                    do * until the stack stops changing (fixed-point combinator)
       ")ii(*nppruttY;="X  push this string and immediately pop and discard it


5

Python, 118 bayt, A042545 , Güvenli

i=int(input());s=pow(801.0,0.5);a=[0|0,1]
for Moshprtflmah in range(i):s=1./(s%1);a+=[a[-2]+a[-1]*int(s)];
print(a[i])

Bu sefer hem 2 hem de 3'te çalışıyor. Ve yorum yok! Ne yapacaksın?

Not: Eski çözümde olduğu gibi, kayan nokta aritmetik hataları nedeniyle ilk 15 terimden sonra hassasiyet kaybedilir.

Amaçlanan çözüm, JavaScript (ES6)

giiiiinnnnprt:
i=prompt([n=+2]);s=Math.pow(801,.5);for(a=[1,0];i--;a.unshift(a[1]+a[0]*(s|0)))s=1/(s%1)
alert(a[0])   

Birkaç eski versiyon tuttuğum halde, bir şekilde bu kopyayı kaybetmeyi başardım , ama neyse ki diğerlerinden bir araya getirmek çok zor değildi. Şimdi anlıyorum ki prther iki programda da golf oynamış olabilirdi. Oh iyi.


İsterseniz bunu güvenli olarak işaretleyebileceğinizi size hatırlatmak isterim.
Buğday Sihirbazı

@WheatWizard Teşekkürler, tasarladığım çözümü ekledim.
ETHProductions

5

Python 2, 124 bayt, A144945 , [Güvenli]

Bunu kırmak sana 500 lira kazandıracaktı! Çok geç!

Birbirine saldıracak şekilde n kraliçe satranç tahtasına 2 kraliçe yerleştirmenin yollarının sayısı.

Umarım çok kolay değildir. Kodumu, boşluk açıkça görülebilmesi için ayarladım. Bunlar sadece boşluklar ve yeni çizgilerdir.

Not: amaçlanan çözüm karakter koduyla çıktı verir

n=input();print((3+2)*n*n+~0*6*n+1)*n/3;            +6;



























+7+7+7+7+7+7+7+7+7;+++++++++++++++9+9*9*9

Çevrimiçi deneyin

Amaçlanan Çözüm, Headsecks :

r2=ni***p**
(


p((0 ;3+++3;+;/


)





i+++nn
 +)7
n

n+++ 


17+~
 +)7;97++++7


69+9n+ ++7+n 69
 +7+ ++7


**7+++tut

Bu, aşağıdaki BF programına eşdeğerdir:

>>,[->>>+>>>+>>>+++++<<<<<<<<<]>>>->>>>>>-<<<[[>+<-]>[>>[<<<+>>+>-]<[>+<-]<-]<<<<]>>+++>[-<-[<+<<]<[+[->+<]<+<<]>>>>>]<<<.,.

4

Bulanık Octo Guacamole, 26 bayt, A070627 [Güvenli]

49++*5^pm#]%:"?:.=:#,|"1:@

Test durumları:

1 -> 1
3 -> 23
5 -> 1

Çözüm:

^::::|*?1=#@]","%.#49++5pm

Magistack'ta çalışıyor.


Merhaba! Sadece bu cevabın güvenli olarak işaretlenebileceğini hatırlatmak isterim. Aceleye gerek yok ama kimse bir haftada kırmadı. İyi iş, bir çözüm görmeye istekliyim
Buğday Sihirbazı

Güzel, eve döndüğümde bir kez daha yapacağım.
Rɪᴋᴇʀ

3

Pyth, 75 bayt, A004526 Kırık, süt

Her şeyden daha eğlenceli bir testten başka bir şey değil:

/Q/////////////////****22222 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2;;;;;

Çevrimiçi deneyin!

Sütün çözeltisi (Konveks):

2/Q2 2/2/2/2/2/2/2/2/2/2/2/2/2/2/2/2/2/2*2*2*; 2*;                 2; 2; 2;

Çevrimiçi deneyin

Amaçlanan çözüm (///):

/*///;2/;// ///22/Q//2;///;//;***2222222222222222222222                    

Çevrimiçi deneyin

Son noktalı virgülten önce 2 şeklinde girdi alır ve doğru Q sayısını verir.

Sıra 0-indekslenmiştir (yani 0, 0, 1, 0, 2, 1'dir ...)

/// içinde hafif sözdizimsel hatalar bulundu, bu yüzden tüm çözümleri düzenledi.



3

MATL, 7 bayt, A000217 , kırık

:sp{1}x

Dizisidir n(n+1)/2girdi başlayan (üçgen sayılar), n=1mücadeleden tarafından belirtildiği gibi: 1, 3, 6, 10, ... (giriş için Çıktı 0iki program aynı olması garanti değildir).

Diğer dildeki program bir hata ile çıkıyor (STDOUT'da doğru çıktıyı ürettikten sonra).

Çevrimiçi deneyin!

:            % Push [1 2 ... n], where n is implicit input
 s           % Sum of that array. Gives the desired result
   p         % Product of that. Gives the same number
    {1}      % Push a cell array containing number 1
       x     % Delete it


@ StevenH.Well yapıldı! Orijinal çözümüm:x:ps{}1
Luis Mendo


3

Python 3, 27 bayt, A000012 , Kırık

Bu sefer giriş yok!

if 1:
    if 1:
        print( '1' )

Girintiler sekmelerdir, ancak baytları kaydetmezler - boşluk için gereklidirler.

Bir TIO bağlantısına veya açıklamasına ihtiyacı olduğunu sanmıyorum!

(Muhtemelen bir şekilde çatlaması uzun sürmeyecek)

Amaçlanan cevap (Boşluk):

-Start-


    if1:if1:print('1')
-End-

(Programın bir parçası değil başlangıç ​​ve bitiş)

Maalesef, STDERR'ye yazdırdığını eklemeyi unuttum:

Çevrimiçi deneyin!



Bunun Boşluk olması gerektiği gibi hissediyorum, ancak bu [LF] [LF] [LF] ile bitecek gerekli satır beslemelerine sahip olmadığı için STDERR'ye bir hata yazdıracaktı.
Martin Ender,

1
@milk Yine mi sen! : D
boboquack

1
Bu çalışır, ancak @boboquack yapar (eğer TIO üzerinde hata ayıklama modunu etkinleştirerek görebilirsiniz) standart hataya baskı ve zorun cevaplar standart hataya gizli dil yazma belirtmek gerektiğini söylüyor.
Martin Ender,


3

Bulanık Octo Guacamole , 11 bayt, A001844 [Güvenli!]

hha02^d+**+

Pyth'ta bu tür bir çalışma çatlaktır dh*h++^2*0a. Yine de doğru çıktı formatı değil.

Kodum hala orada! (ve Pyth'te değil)

Test Durumları:

0 -> 1
1 -> 5

Çözüm:

^++d0ah*2*h

Jolf’ta.


1
Yemin ederim, bu Jolf için yapılmış gibi görünüyor, ama şunu d
çözemiyorum


@ETHproductions ah, güzel. Olsa sayılır emin değil misiniz? Düzenlemeye bakınız.
02:56

Kodum yeni bir satır yazdırıyor ancak boşluk yok. Geçerli kodla aynı.
02:57

@EasterlyIrk Söylediklerime rağmen cevabın bir çatlak olduğunu düşünmüyorum. Söylediğim her şey hala geçerli, ancak önde gelen boşlukların geçerli çıktılarını göz önünde bulundurmuyorum ve bunu yansıtacak soruyu değiştireceğim.
Buğday Sihirbazı


2

JavaScript ES6, 38 bayt, A000290 , Kırık

J=>eval(Array(J).fill(J).join`+`)|2-2;

Bu kare tren oldukça şık, ancak hızlı bir yere gitmiyor. (Alın? Kare tren? İçinde olduğu gibi, tekerlekler? Hayır? Tamam, iyi. Eleştirmenler .)


Amaçlanan cevap: Retiküler ( Çevrimiçi deneyin! ),

in2Jo;=>eval(Array(J).fill(J).j`+`)|-2
in      take input, convert to number
  2J    raise to the second power
    o;  output and terminate; ignores following chars

2
Kodunuz beni diğer dilin J: P olduğuna inandırmaya çalışıyor
ETHproductions



2

2sable , 13 bayt, A002378 , Kırık!

Umarım bir şey kaçırmadım. A (n) = n × (n + 1) hesaplar :

>*?"!&)<=@\\}

Benim versiyonum:

?"\>@&*})<\=!

Veya açılmamış sürüm:

  ? " \
 > @ & *
} ) < \ =
 ! . . .
  . . .

O Not >sol üst köşesinde (2sable programı hariç) kullanılmamış olduğunu. Bunu soyguncuların kafasını karıştırmak için yaptım (ama bu açıkçası işe yaramadı).

Çevrimiçi deneyin!



@MartinEnder Güzel iş! Cevabımı orijinal gönderim ile güncelleyeceğim :).
Adnan



2

Python 2, 35 bayt, A048735 , Güvenli

print(lambda u:u&u<<1)(input())>>1

Orijinal çözüm kendi programlama dilimdeydi Wise .

:<<>&>print(lambda uuu1)(input())1

Karakterlerin çoğu alakasız. Önemli karakterler ilk altı. :yığındaki ilk öğenin iki kopyasını oluşturur. <<>bit, iki kez sola ve bir kez sağa kayar; bu, bitin bir kez sola kaymasına eşdeğerdir. &bit yönünde ve ikinci ve ikinci öğeyi alır (orijinal ve bit kaydırılan kopya). Son olarak, >bit bir kez sağa kayar.


2

05AB1E, 5 bayt, A000012 , Güvenli

$;$1?

1'lerin sırası. Çevrimiçi deneyin

Amaçlanan Çözüm: Arcyou

1;$$?

Çevrimiçi deneyin . Bu dilin belgelerini bulamadım, bu yüzden tam olarak nasıl çalıştığını açıklamadım.


Aptal noktalı virgül ... Neredeyse Retina kullanabilirsiniz, ama ben hem edemez 1ve ;.
mbomb007 11:16

1
Bu kırılmadı
Buğday Sihirbazı,

Görünüşe göre bu cevap şimdi güvenli olarak işaretlenebilir. Bunu kırmaya çalışmak için çok zaman harcadığımdan, amaçlanan cevabı görmeye oldukça hevesliyim.
Buğday Sihirbazı

Bu cevap şimdi "kabul edildi" olarak işaretlenmemeli mi?
mbomb007

1

Python 2, 70 Bayt, A000217 Kırıldı!

Diğer versiyon için kullandığım dilde kırılmayacağını hissediyorum, göreceğiz :)

o=input()
v=0
i=1
while o:
 v+=i
 i+=1
print v


#|  d00->1@@@++-^,,[

Daha sonra kodun yanlış şekilde gizlendiğini fark ettim (gönderilen yanıtın geçerliliğini değiştirmez). İşte Haystack'ta başladığım kod:

v
0
v
0
i
1
-
>      d0[v
^-1@+@d+1@?,,o|


1

05AB1E , 9 bayt, A000042 Kırıldı!

1×,1*-^$)

Bu, doğal sayıların Unary gösterimidir (OEIS). Yani eğer giriş, 3örneğin, çıkış olur 111.

Açıklama:

                    # implicit input
1                   # pushes 1 to the stack   
 ×                  # pushes "1" × (the input)
  ,                 # outputs the stack
   1*-^$)           # irrelevant

Çevrimiçi deneyin!


Orijinal Çözüm, Havuç

1^*$-1×^)

açıklama

1^             Push "1" to the stack
  *            Multiply the string by
   $-1         ...the input (as an integer) minus 1 times
      ×,)      Ignored by the interpreter

*Tarafından dize çarpar (n+1)zamanlarda, böylece a^*3sonuçları aaaadeğil aaa. Bu yüzden 1girişten çıkardım .

Ancak şimdi, )bunun her iki dilde de alakasız olduğunu fark ettim : D

Çevrimiçi deneyin!



Orijinal gizli dil neydi?
Buğday Sihirbazı,

@WheatWizard Çatlaklar, bunu bulduğun için teşekkürler. Şimdi dili ekledim
Kritixi Lithos 10:16

1

J, 2 bayt, A000290 , Kırık

*~

İki bayt için de devam etmeye başlayabiliriz. Verimler , n x n ya da n- 2 .

amaçlanan çözüm, Jolf, 2 bayt

*~

İyi. Evet. Bu benim kendi dilim ve bence işe yarıyor çünkü ~genişletilmiş bir karakter arıyor, fakat bir tane bulamıyor, bu yüzden onu görmezden geliyor. ¯ \ _ (ツ) _ / ¯ Hata!



@StevenH. iyi iş! Amaçlanan çözümle düzenleme yaptım.
Conor O'Brien,

@ ConorO'Brien Amaçladığınız çözüm geçerli bir çözüm değildi. Dillerin farklı olarak değerlendirilebilmesi için, ne orijinal ne de çözüm her iki dilde de çok dilli olabilir
Wheat Wizard

@WheatWizard Oh. Bu garip.
Conor O'Brien,



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.