Позиционная осведомленность

10

Позиционная осведомленность

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

Если ваша программа

Derp

вы должны вывести

[0, 1, 2, 3]

(или какой-то эквивалент). Это потому, что Dнаходится на 0й-й позиции, eна 1й- 2й и т p- 3й.

Давайте возьмем другую программу, которая является оригинальной, но с перестановками символов:

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
    
clismique
источник
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 .

Программа Derranged 01делает то же самое, в обратном порядке.

Деннис
источник
1
На других языках это работает; Серьезно, 05ab1e, ///, 2sable.
Тил пеликан
В спецификации сказано, что числа должны быть разделены. Он действительно работает серьезно, но на самом деле это просто серьезно 2.0.
Деннис
7

Желе , 2 байта

;J

Попробуйте онлайн!

Выходы: [0, 1]

Другие J;выходы перестановки :[1, 0]

Как это работает:

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

J;
J          [1...len(z)], here just [1]
 ;         ...Concatted with 0
молоко
источник