Konumsal Farkındalık


10

Konumsal Farkındalık

Göreviniz, karakterlerinin her permütasyonu için (orijinal programı içeren), her karakterin orijinal programa göre konumlarını veren bir program oluşturmaktır.

Programınız

Derp

çıktı almalısın

[0, 1, 2, 3]

(veya eşdeğeri). Bunun nedeni ise Diçindedir 0inci pozisyonunda, eolduğu 1, st r 2nd ve rd.p3

Orijinal program olan başka bir program alalım, ancak karakterleri izin verildi:

epDr

Çıktı almalısınız

[1, 3, 0, 2]

Çünkü eiçindedir 1orijinal programın st pozisyonunda, polduğu 3rd pozisyonunda, th ve nd.D0r2

Orijinal programın yinelenen iki karakteri varsa:

abcda -> [0, 1, 2, 3, 4]

Daha sonra permütasyon için, 0ve 4dizi içinde artan olmalıdır:

baadc -> [1, 0, 4, 3, 2] (0 first, then 4)

Kurallar:

  • Programınız en az iki benzersiz karakter içermelidir.
  • Çoğu floor(n/2)karakter aynı olmalıdır.

     aabb (acceptable)
     aaaabc (not acceptable, only floor(6/2) = 3 a's allowed)
    
  • Programınızın çıktısı, sırayla tüm karakterlerin konumlarını içeren bir dizi (veya benzer bir şey) veya herhangi bir sınırlayıcıya sahip bir dize olabilir;

    [0, 1, 2, 3]
    0,1,2,3
    0 1 2 3
    

7
Bu zorluğun önemsiz olmayan herhangi bir çözüme izin verdiğine inanmıyorum çünkü uzunluğun herhangi bir dilinde hemen hemen herhangi bir cevap> = ~ 5 her bir permütasyon için geçerli bir program olmayacak, eldeki zorluğu çözen bir program olsun.
orlp

1
@ Qwerp-Derp Neredeyse hiç kimse sanal alanda bir şey söylemiyor. Bir süre önce, yaklaşık bir ay boyunca kum havuzunda kaldıktan sonra bir soru gönderdim. Ve sadece bunu gönderdiğimde, insanlar hatalara dikkat çekti ve inişler yağdı. Dürüst görüşüme göre, kum havuzu işe yaramaz.
Ismael Miguel

1
Bir keresinde, bu meydan okumadaki gibi hissediyorum, daha uzun bir cevap daha kısa olandan daha etkileyici olacaktır.
Wojowu

1
@Wojowu Mümkünse kod bowlingini yapabilirim - en uzun program kazanır.
clismique

1
12R'deki program geçerli olur mu? Sadece yazdırır 12ve izin verilirse; 21.
Billywob

Yanıtlar:


21

Aslında 2 bayt

10

Çevrimiçi deneyin!

Bu yazdırır

0
1

(sadece) diğer permütasyon

01

baskılar

1
0

Nasıl çalışır

Aslında, ardışık rakamlar ayrı olarak ayrıştırılır, 10 yığına 1 , sonra üstüne 0 iter .

Program bittiğinde, yığın yukarıdan aşağıya yazdırılır, böylece yazdırılır önce 0 , sonra satır besleme, sonra 1 .

Bozuk program 01aynı işlemi ters sırayla yapar.


1
Çalıştığı diğer diller; Cidden, 05ab1e, ///, 2sable.
mavisi pelikan

Spesifikasyon, sayıların ayrılması gerektiğini söylüyor. Ciddi bir şekilde çalışıyor, ama aslında sadece Ciddi 2.0.
Dennis

7

Jöle , 2 bayt

;J

Çevrimiçi deneyin!

Çıktılar: [0, 1]

Diğer permütasyon J;çıktıları:[1, 0]

Nasıl çalışır:

;J
;          Concats 0 with...
 J         [1...len(z)], here just [1]

J;
J          [1...len(z)], here just [1]
 ;         ...Concatted with 0
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.