Tamsayı dizilerindeki kelimeleri kodlama


15

Giriş

Pareidolia : Eski Yunancadan; ( αρα ( para , “eşzamanlı, birlikte”) + εἴδωλον ( eídōlon , “görüntü”). Belirsiz bir uyaranı Mars'ta izleri kanal olarak yorumlama, bulutlardaki şekilleri görme veya gizli mesajları müzikte duyma gibi gözlemci tarafından bilinen bir şey olarak yorumlama eğilimi. Kaynak: Vikisözlük .

Örneğin:

resim açıklamasını buraya girin

Paralogia : Eski Yunancadan;( αρα ( para , “eşzamanlı, yan yana”) + λόγος ( lógos , “konuşma, ihmal , kelime, ...”). Kod golf programlarında olduğu gibi, kelimeleri rastgele karakter dizilerinde algılama eğilimi. Kaynak: evet, uydurdum (aslında kelime @Martin'in işaret ettiği gibi başka bir şey ifade ediyor).

Örneğin:

    df4$/H)hEy_^p2\
    jtK2$)look|x1$

Meydan okuma

Girdi olarak pozitif bir tamsayı alan, çıktı olarak bir tamsayı üreten ve kodun bir parçası olarak İngilizce bir sözcük içeren bir program yazın. Girdi-çıktı ilişkisi OEIS'de bulunabilecek bir tamsayı dizisine karşılık gelmelidir .

kurallar

  • Yalnızca bu listedeki kelimelere izin verilir. Bu kuşkusuz keyfidir, ancak hepimizin hangi kelimelerin kabul edildiğine katılıyorum; ve bu bakımdan, bu liste muhtemelen diğerleri kadar iyi.
  • Kelimelerin en az iki işlev adı veya deyimi birleştirilerek oluşturulması gerekir . Örneğin, dilinizde adlı bir işlev correlationvarsa, olduğu gibi kullanılamaz. Birleştirme katı olmalıdır: kelimenin parçaları arasında başka hiçbir sembol görünmemelidir. Örneğin, bro~kenbir kelime olarak sayılmaz.
  • Örnek önemsizdir: her ikisi de validve vaLiDkabul edilebilir.
  • Dizeler içindeki kelimeler sayılmaz. Sözcüğü oluşturan harflerin, seçim dilinde işlevler veya ifadeler, yani gerçekte yürütülen bir şey olması gerekir . Örneğin, şu koda izin verilmez:, 'deoxyribonucleic'~1burada '...'bir dize,~ önceki içeriği atar ve 1yalnızca sayı yazdırır 1.
  • Kelimenin her harfi gerekli . Bu, sözcükten tek bir harfin kaldırılmasının girdi-çıktı ilişkisini değiştirmesi gerektiği anlamına gelir. Bu, farklı bir dizinin çıktısını almayı veya başka herhangi bir şeyin çıktısını almayı veya çıktı üretmemeyi veya bir hataya neden olmayı içerir.
  • Hiç pozitif tamsayı girdi olarak kabul edilebilir olmalı ve veri türü veya bellek kısıtlamaları dışında bir çıktı üretmelidir.
  • Girişlere karşılık gelen çıkışlar 1, 2, 3, ... bir sekans görünen karşılık gelmelidir OEIS . Başka hiçbir çıktı üretilmemelidir; yalnızca tamsayı bir sayı, büyük olasılıkla sondaki veya önde gelen boşluklu.
  • Girdi ve çıktı işlev bağımsız değişkenleri veya stdin / stdout olabilir.

Puan

Skor, toplam kod uzunluğu eksi olarak en uzun kelimenin uzunluğunun iki katı olarak hesaplanır. Veya eşdeğer olarak, en uzun kelime olmayan karakter sayısı eksi en uzun kelime uzunluğu.

En düşük puan kazanır.

Örnekler

Şu işlevlere sahip hayali bir postfix dilini düşünün c:: bir sayı girin; At: kare hesapla; $: ekle 1.

cAtçıkış karşılık sekansına (geçerli bir program olurdu 1, 4, 9, ..., ki A000290 ) ve yeni bir gol olurdu -3.

cAt$Ayrıca dizisi (geçerli olacaktır 2, 5, 10, ..., hangi A002522 skoru) -2.

c$At geçerli olmayacaktır, çünkü buradaki tek kelime "At" tır ve tek bir işlev veya ifade tarafından üretilir.


Bunun popülerlik yarışması olması gerektiğini düşünüyorum.
MCMastery

5
@MCMastery Bu iyi bir popülerlik yarışması yapmaz. (Çoğu zorluk olmaz.)
Alex A.

Bu aslında golf dilleriyle sınırlıdır.
ericw31415

Yanıtlar:


11

CJam, -20

COUNTErREVOLUTIONARIES],

A010861 dizisindeki n'inci elemanı çıktılar .

COUNTE                      e# push values of six preinitialized variables
      r                     e# read a token of input
       REVOLUTIONARIES      e# push values of 15 other preinitialized variables
                      ]     e# wrap whole stack in array
                       ,    e# get length

Kelimeden bir karakterin kaldırılması tamamen farklı bir A010860 dizisiyle sonuçlanır . İki dizi arasındaki bir oldukça ilginç bir ilişki vardır: Her indeks n de A010860(n)aralarında asal etmektirA010861(n) ! Bunun arkasında derin bir matematiksel neden olmalı.

Burada deneyin .


1
Başka bir meraklı matematiksel ilişki keşfettim: A010860 dizisini A010861 dizisinden çıkarırsanız, sonuç her dizinde her zaman 1'e eşittir! Büyüleyici ...
Kapı tokmağı

Bunu yenmek zor olacak :-)
Luis Mendo

Oh, büyük harf .. Harika fikir :)
Martin Ender

10

CJam, -5

limpet;

A010051 : 0bileşik sayılar ve 1asal sayılar için baskılar .

Birkaç puan alan ve herhangi bir mektubun kaldırılmasında kırılacak bir şey bulmak sonsuza dek sürdü. Bunun dışında herhangi mbir şey kaldırıldığında hata oluşur ve kaldırılması mprogramı kimlik işlevine dönüştürür.

li  e# Read input and convert to integer.
mp  e# Check for primality.
et  e# Get current datetime as a list.
;   e# Discard the datetime again.

Çevrimiçi deneyin.


Dizi güzel seçim! :-)
Luis Mendo

8

05AB1E , -4 -11

Kod, baskılar A010869 (sabit 30):

ASYNcHRonouSlyI)g

Önceki kod:

DoGS

Açıklama:

D     # Duplicate top of the stack
 o    # Pop a, push 2**a
  G   # For N in range(1, 2**a):
   S  # Push all chars seperate from the top of the stack

A010879 dizisini yazdırır .


Bu şimdiye kadarki en ilginç dizi!
Luis Mendo


6

MATL , −6

INhale

Çevrimiçi deneyin!

Üretir dizisi 1, 2, 3, ... ( A000027 )

Herhangi bir harfin çıkarılması çıktıyı değiştirir veya programın var olmayan veya hata oluşturan ikinci bir girdi beklemesini sağlar.

açıklama

Program basitçe bir numarayı solur ve etrafta dolaştıktan sonra değişmeden nefes verir.

I    % produces number 3
N    % number of elements in stack: produces number 1
h    % concatenates horizontally into array [3, 1]
a    % true if any element is nonzero. So it gives true (or equivalently 1)
l    % produces number 1
e    % triggers implicit input and reshapes into a 1x1 array. So it leaves input unchanged

5

Pyth, 1

*QhSatan0000
   Satan

Açıklama?

       n00   - 0 != 0 (0) 
      a   0  - abs(^-0) (0, Required so it doesn't print out a random 0)
     t       - ^-1 (-1, required or will output 0 all the time)
    a      0 - abs(^-0) (1, Required so counts in right direction, would also print out a random 0)
   S         - 1-indexed range ([1], required so next command works properly)
  h          - Get the head (if `S` missed, will out 2)
*Q           - Multiply by Q

1, 2, 3, 4, 5 ...

Sıra A000027

Subliminal mesajlar? Asla.

Burada deneyin.


4

Japt, -6

NuLLIFIED)r^

A004453 çıkışları : N ve 12'nin nimsumu (N XOR 12).Çevrimiçi test edin!

Not: OEIS dizisi 0 dizinlidir, bu nedenle 0 girişi ilk öğeye neden olur.

Nasıl çalışır

        // Implicit: N = array of inputs
Nu      // Push the following things to N:
LLIF    // 100, 100, 64, 15,
IED     // 64 again, 14, and 13.
)r^     // Reduce by XORing (using ^ between each pair)
        // The reduction goes as follows: U, U^100, U, U^64, U^79, U^15, U^1, U^12.

Güzel! Herhangi bir açıklama, ne zaman yapabilirsiniz?
Luis Mendo

@LuisMendo Elbette, bitti. İnanılmaz derecede basit, ama henüz daha karmaşık bir şey bulamadım.
ETHproductions

@LuisMendo Güncellendi. Bu biraz daha ilginç.
ETHproductions

Aslında! Ama görünüşe göre kaldırmak Yaynı çıktıyı üretir? (yanlış bir şey yapmazsam)
Luis Mendo

@Luis Bu daha mı iyi?
ETHproductions

3

Başlık , skor −4

exit

Bu ,+-., tek bir karakteri okuyan ve yazdırarak hesaplayan Brainfuck programıyla eşleşir A000030'u eşleşir . Herhangi bir karakterin kaldırılması onu aşar

Ayrıca etkili bir şekilde marshal( ,-<>+-.) vardır ,-., ancak bu herhangi bir OEIS dizisine karşılık gelmez.


2

x86 makine kodu, skor -4

Onaltılık kod:

53 51 55 41 53 68 69 65 73 74 51 58 83 c4 14 c3

Veya kod sayfası 437'de :

SQUAShiestQXâ─¶├

Montaj kodu:

push ebx
push ecx
push ebp
inc ecx
push ebx
push 0x74736569
push ecx
pop eax
add esp, 0x14
ret

Bağımsız değişkenine 1 ekleyen bir işlev .

Çıkarma A onu bir kimlik işlevine dönüştürür. Diğer baytların kaldırılması yığının bozulmasına neden olarak arama işlevinin kilitlenmesine veya hatalı davranışına neden olur.

Skoru yükseltmenin mümkün olduğuna eminim, ancak bu gereksinimlerin yorumlanmasına bağlı olabilir. Örneğin, sözcüğün kullanılması kaydı SQUEAMIShnessartıran ve azaltan bir program verir ebp. Bunlardan herhangi birinin kaldırılması çökmeye neden oluyor mu? En basit bir test programı ebpkaydı kullanmaz, belki de kullanmaz ... Bu şüpheyi önlemek için daha kısa bir kelime kullandım.



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.