Позитивна обізнаність


10

Позитивна обізнаність

Ваше завдання - створити програму, яка для кожної перестановки своїх символів (яка включає оригінальну програму) виводить позиції кожного символу відносно вихідної програми.

Якщо ваша програма є

Derp

ви повинні вивести

[0, 1, 2, 3]

(або якийсь еквівалент). Це тому , що Dзнаходиться в 0ій позиції, eзнаходиться в 1ст, г на 2й, і - й.p3

Візьмемо ще одну програму, яка є оригінальною програмою, але з перестановками її символів:

epDr

Ви повинні вивести

[1, 3, 0, 2]

тому що eзнаходиться в 1положенні й оригінальної програми, pзнаходиться в 3положенні я, Dна 0е, і rв 2е.

Якщо в оригінальній програмі є два повторювані символи:

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

Тоді для перестановки масив 0і 4в масиві має бути у порядку зростання:

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

Правила:

  • Ваша програма повинна містити принаймні два унікальних символи.
  • У більшості floor(n/2)символи повинні бути однаковими.

     aabb (acceptable)
     aaaabc (not acceptable, only floor(6/2) = 3 a's allowed)
    
  • Вихід вашої програми може бути або масивом (або чимось подібним), що містить усі позиції символів за порядком, або рядок з будь-яким роздільником, так що ці ідеально добре:

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

7
Я не вірю, що ця проблема дозволяє приймати будь-яке нетривіальне рішення, оскільки практично будь-яка відповідь будь-якою мовою довжини> = ~ 5 не буде дійсною програмою для кожної перестановки, не кажучи вже про програму, яка вирішує проблему.
orlp

1
@ Qwerp-Derp На пісочниці майже ніхто нічого не каже. Деякий час тому я розмістив питання після того, як перебував у пісочниці близько місяця (або близько того). І лише коли я розміщував це повідомлення, коли люди вказували на помилки, а низовини дощили. На мою чесну думку, пісочниця марна.
Ісмаель Мігель

1
Колись я відчуваю, що в цьому виклику довша відповідь буде вражаючою, ніж коротша.
Wojowu

1
@Wojowu Я можу зробити це боулінг-кодом , якщо це можливо - виграє найдовша програма.
clismique

1
Чи буде програма 12в R дійсною? Це було б просто надруковано 12та, якби перестановлено; 21.
Billywob

Відповіді:


21

Власне , 2 байти

10

Спробуйте в Інтернеті!

Це відбитки

0
1

тоді як (тільки) інша перестановка

01

відбитки

1
0

Як це працює

Насправді послідовні цифри аналізуються окремо, тому 10натискаємо 1 на стек, а потім 0 на верхній частині.

Коли програма закінчується, стек друкується зверху вниз, тому він спочатку надрукує 0 , потім передачу рядків, потім 1 .

Програмована програма 01робить те саме, у зворотному порядку.


1
Інші мови, на яких це працює; Серйозно, 05ab1e, ///, 2able.
Тілінг пелікан

Спеціалізація каже, що числа потрібно розділити. Він працює в Серйозно, але насправді це просто Серйозно 2.0.
Денніс

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.