Codegolf - Очень Длинная Терца Рима

  • Автор темы Sypesteakly
  • Обновлено
  • 22, Oct 2024
  • #1

Описание

Выведите схему рифмы для очень длинной Терцы Римы.

Вход

Никто.

Выход

 
 
 ABA
BCB
...
 

Правила

Вы можете выбирать между разделением строф пробелами или переводами строк, поэтому либо:

ABA BCB...

ИЛИ

ABA BCB CDC DED EFE FGF GHG HIH IJI JKJ KLK LML MNM NON OPO PQP QRQ RSR STS TUT UVU VWV WXW XYX YZY

В каждой строке допускается один конечный пробел и один конечный символ новой строки.

Вывод может быть как в верхнем, так и в нижнем регистре.

Это , поэтому побеждает самый короткий код в байтах для каждого языка.

#код-гольф #код-гольф #строка #колмогоров-сложность #алфавит

Sypesteakly


Рег
28 Mar, 2014

Тем
68

Постов
206

Баллов
566
  • 26, Oct 2024
  • #2

JavaScript (ES6), 51 50 49 байт

Сэкономлен 1 байт благодаря @l4m2

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 u: 

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

Как?

Мы начинаем с п = 45358 (ызи в базе-36). Мы вычитаем 1333 от н на каждой итерации (111 в базе-36). Мы остановимся, как только п MOD 63 = 0, потому что 12033 (9а9 в базе 36) — это первое значение, для которого выполняется это условие, и 63 является наименьшим по модулю с таким свойством.

a.{~ ||answer||

С (ГКК), 41 байт

2(,{.)\u:65+i.26

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

Исправлено и -9 благодаря пользователь202729. -1 спасибо Деннис и -2 благодаря Арно слишком.

 

Hub2002


Рег
21 Aug, 2016

Тем
80

Постов
213

Баллов
683
  • 26, Oct 2024
  • #3

Желе, 7 байт

[a,b,c]

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

-1 байт спасибо Деннису

₆ # Push 64 25( # Repeat 25 times › # Increment (left with last number from last time) [65] D: # Quadruple [65,65,65,65] C # Turn into char ['A',65,65,65] $C # Swap top two of stack and turn next into char ['A','A',65,65] „ # Rotate stack right [65,'A','A',65] ›C # Increment and to character ['B','A','A',65] + # Concatenate ['BA','A',65] $ # Swap top two ['A','BA',65] + # Concatenate ['ABA',65] , # Output, leaving 65 for next iteration ||answer||

мозготрах, 51 48 байт

Сэкономлено 3 байта благодаря @ovs.

₆25(›D:C$C„›C+$+,

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

Объяснение

//! zinc library q{ integer Index, Increment; string Alphabets = "ABCDEFGHIJKLMNOPQRSTUVWXYZ", Letter; function onInit(){ // Create an empty text file (Preload file). PreloadGenClear(); PreloadGenStart(); /* * Index from 0 to 24 */ for (0 <= Index < 25){ Increment = Index + 1; // Slice Letter = SubString(Alphabets, Index, Increment); // Output Preload(Letter + SubString(Alphabets, Increment, Increment + 1) + Letter); } // Save .txt PreloadGenEnd("CodeGolf\\testOutput.txt"); } } //! endzinc ||answer||

мозготрах, 51 49 байт

Preload()

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

Попытка объяснения...

library q{ integer Index, Increment; string Alphabets = "ABCDEFGHIJKLMNOPQRSTUVWXYZ", Letter; function onInit(){ /* * Index from 0 to 24 */ for (0 <= Index < 25){ Increment = Index + 1; // Slice Letter = SubString(Alphabets, Index, Increment); // Output BJDebugMsg(Letter + SubString(Alphabets, Increment, Increment + 1) + Letter); } } }

-2 с благодарностью @ovs

Моя первая попытка мозготраха, поэтому любые подсказки принимаю с благодарностью. Если бы у меня был больше опыта в этом, я уверен, что мог бы срезать еще несколько байт, но я занялся этим только вчера.

 

Zahical


Рег
03 Jun, 2007

Тем
61

Постов
210

Баллов
555
  • 26, Oct 2024
  • #4

05AB1E, 5 байт

library q{integer w,e;string r="ABCDEFGHIJKLMNOPQRSTUVWXYZ",t;function onInit(){for(0<=w<25){e=w+1;t=SubString(r,w,e);BJDebugMsg(t+SubString(r,e,e+1)+t);}}}

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

-1 байт благодаря Эмигне
-1 байт благодаря изменению правила; спасибо kalsowerus за указание на это

Хе-хе, на данный момент побеждает Пита. \о/

Объяснение

//! endzinc ||answer||

Питон 2, 42 41 байт

-1 байт благодаря Халварду Хаммелу

//! zinc

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

 

Вадик1


Рег
28 Nov, 2006

Тем
69

Постов
183

Баллов
538
  • 26, Oct 2024
  • #6

Древесный уголь, 11 байт

# Prepare stacks # prepare stack R [Z] REeEeEEeEe # push Z # prepare stack r [A,B,A] rEeEeeeeeE # push A RrEEEEE # copy and increment A (getting B) rEEEee # duplicate A to end # Start loop REE # create label Z reee # output stack r contents rEEEEEeeE # increment all reeE # end line Ree # loop while r[p] != Z

Попробуйте онлайн! Ссылка на подробную версию кода. Объяснение:

REeEeEEeEerEeEeeeeeERrEEEEErEEEeeREEreeerEEEEEeeEreeERee ||answer||

Брейн-Зенит, 90 байт

65..89|%{-join[char[]]($_,($_+1),$_)}

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

Одна из причин, по которой этот ответ короче, чем другой ответ на мозговой штурм, заключается в том, что он использует символы верхнего регистра вместо символов нижнего регистра, которые имеют меньшие значения ASCII и, следовательно, их легче нажимать.

Объяснение:

Write-Output ||answer||

Р, 51 47 байт

-join

Выход:

char ||answer||

Ява 8, 132 85 62 60 байт

  • 47 байт благодаря Нилу
  • 26 байт благодаря Оливеру
  • 3 байта и гораздо лучшее форматирование благодаря Кевину
  • Ошибка исправлена ​​Оливером

играл в гольф

89

без гольфа

65 ||answer||

><>, 25 24 23 22 байта

Сэкономлено 2 байта благодаря Джо Кинг

65..89|%{-join[char[]]($_,++$_,--$_)}

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

 

Lakeishadelisle38961


Рег
25 Oct, 2024

Тем
71

Постов
218

Баллов
613
  • 26, Oct 2024
  • #7

мозготрах, 45 37 байт

cat(paste0(L<-LETTERS,L[-1],L)[-26])

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

Печатается в верхнем регистре, разделенном пробелами с конечным пробелом.

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

cat(intToUtf8(rbind(x<-65:89,x+1,x,9))) ||answer||

Бефунге-98 (ФББР), 27 23 21 байт

-4 байта благодаря Джеймс Холдернесс

cat(intToUtf8(rbind(x<-65:89,x+1,x,10)))

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

 

Biyar


Рег
08 Jul, 2008

Тем
78

Постов
164

Баллов
604
  • 26, Oct 2024
  • #10

Пиф, 7 байт

[[x,succ x,x]|x<-['A'..'Y']]

Попробуйте здесь!

Хе-хе, на данный момент побеждает Джелли. \о/

Легко переводится в следующую программу 05ab1e:

05AB1E, 7 байт

(()()())(({}){})(({}){})(({}){})(({}){})(({}){}())<>(()()()()())(({}){})(({}){})(()()()()(){}){({}[()])<>(({}))(({}()))(({}[()]))({}()<(()()()()()()()()()())>)<>}<>{}{}{({}<>)<>}<>

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

 

Anangocoleaft74


Рег
25 Oct, 2024

Тем
81

Постов
206

Баллов
621
  • 26, Oct 2024
  • #14

Хаскелл, 28 байт

jC[GtGG

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

-[[<+>--->++>>>+<<<<]>+]>>>[<<.+.-.+>.>-] is such an unfortunate naming choice...

Объяснение

ẊS:`e…"AZ ||answer||

Р, 40 байт

j'@1+3k:,1+,,a,'Y/!1+

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

Еще одна альтернатива в R Планнапус и Джузеппе ответы. Размещено по их просьбе. В этом решении используется код ASCII для кодировки UTF8.

PS, если бы TAB были разрешены, можно было бы заменить новую строку (код ASCII 10) табуляцией (код ASCII 9), и решение могло бы сократиться до 39 байт:

+[[<+>>++<-]>] Intialises the tape with the format n^2 1 2 4 8 16 32 64 128 0 0' <<--- Navigates to the desired section and tweaks the counter 1 2 4 8 16 32 64 125< [-----<+.+.-.<.>>] Prints the Terza Rima, using: 125 as the loop counter (decremented by 5 each loop) 64 as the current alphabetic character (incremented and printed each loop) 32 as the space character

 

Encuggefe


Рег
12 Oct, 2012

Тем
80

Постов
190

Баллов
610
  • 26, Oct 2024
  • #15

Comaswollaf2


Рег
25 Oct, 2024

Тем
90

Постов
201

Баллов
661
  • 26, Oct 2024
  • #16

PowerShell, 39 37 байт

"!;::o1+:o$oao:'Y')0.A

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

Петли из public class TerzaRima { interface A{ void a(String a); } static A a = a -> { for (char i = 64; ++i < 90; ) System.out.println("" + i++ + i-- + i); }; public static void main(String[] args){ a.a(null); } } to a->{for(char i=64;++i<90;)System.out.println(""+i+++i--+i);} . На каждой итерации мы создаем целочисленный массив (текущая, еще одна и текущая) текущей цифры, используя преинкремент и преддекремент. Затем это преобразуется в > L=LETTERS;cat(sprintf("%s%s%1$s",L[-26],L[-1])) ABA BCB CDC DED EFE FGF GHG HIH IJI JKJ KLK LML MNM NON OPO PQP QRQ RSR STS TUT UVU VWV WXW XYX YZY -array, and L=LETTERS;cat(sprintf("%s%s%1$s",L[-26],L[-1])) объединены в одну строку. Каждая строка остается в конвейере, и неявный #Push 25 ((((()()()){}){}){}()) #While true { #Keep track of the number on top of the stack... # We'll call it 'a' (({}) #Push A +... <((({} # 64 (push) ((((()()()()){}){}){}){}) # + 1 (push) ()) # - 1 (push) [()]) # Push 10 ((()()()()()){})> # Now that's all pushed, we push a - 1 to decrement the loop counter [()]) # Endwhile } at program completion gives us a newline between each element for free.


Альтернативно, то же количество байтов

((((()()()){}){}){}()){(({})<((({}((((()()()()){}){}){}){})())[()])((()()()()()){})>[()])}

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

 

Papasha


Рег
02 Aug, 2006

Тем
67

Постов
196

Баллов
531
  • 26, Oct 2024
  • #17

Пепе, 59 56 байт

-3 байта благодаря u_ndefined

²⁵ Literal 25 E Map over implicit range α Predefined uppercase letters ✂ ι⁺²ι Slice 2 characters Implicitly print result on separate lines ‖O Reflect with overlap

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

Объяснение:

E²⁵✂αι⁺²ι‖O ||answer||

Пип, 8 байт

⎕←

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

 

Gost13


Рег
27 Mar, 2007

Тем
76

Постов
218

Баллов
618
  • 26, Oct 2024
  • #18

vJASS (Warcraft 3), 203 189 182 177 156 байт

С использованием 25↑0 1 0⊖3/⍪⎕A command to exclude i=65;exec"print'%c'*3%(i,i+1,i);i+=1;"*25 и Aü«€û Full Program A Lowercase Alphabet ü« Pairwise with merge-list €û For each, palindromize .


Aü«€û

Читабельная версия:

+++++ #Put 5 in cell 0 because that is the highest common denominator of 10, 65 and 25 [ #Start loop >+++++ #Counter in cell 1 is 25 (How many lines we must print) >+++++++++++++ #Counter in cell 2 is 65 (ASCII A) >++ #Counter in cell 3 is 10 (Newline) <<<-] #Decrement the outer counter until the cells have the right values (muliples of 5). > #Move to the counter that says how many lines we must print. [>. #Print the character in cell 2 +. #Add one to the character in cell 2 and print it -. #Subtract one from the character in cell 2 and print it + #Add one to the character in cell 2 for the next loop >. #Print a new line <<-] #Decrement cell 1 and run again until cell 1 is 0




Только в целях проверки:
Внутриигровой текстовый экран имеет ограниченное пространство. С использованием +++++[>+++++>+++++++++++++>++<<<-]>[>.+.-.+>.<<-] , we may able to see the full output.

INITIALIZE TAPE: 0000: (none) 0001: C_NEWLINE (10) 0002: V_COUNT (25) 0003: V_ALPHA (64) ++++++++[>+>+++>++++++++<<<-]>++>+ V_COUNT TIMES: [- INCREMENT V_ALPHA >+ PRINT V_ALPHA . PRINT V_ALPHA PLUS ONE +. PRINT V_ALPHA -. PRINT C_NEWLINE <<. END LOOP >]

 

Starpom


Рег
08 Jun, 2004

Тем
89

Постов
173

Баллов
648
  • 26, Oct 2024
  • #19

Виксал, 17 байт

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

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

ØAṡ2ŒBY Main Link ØA Alphabet ṡ2 Slice into overlapping slices of length 2 ŒB Palindromize (bounce) each Y Join by newlines

Примечание: ØAṡ2ŒBY or whatever is a visualisation of the stack.

 

Ii2020


Рег
08 Apr, 2020

Тем
73

Постов
213

Баллов
588
  • 26, Oct 2024
  • #20

Дж, 18 16 байт

f(i){for(i='ABA';i%29;i+=65793)puts(&i);}

Измененный Decimal | Base-36 | MOD 63 --------+---------+------- 45358 | yzy | 61 44025 | xyx | 51 42692 | wxw | 41 41359 | vwv | 31 40026 | uvu | 21 38693 | tut | 11 37360 | sts | 1 36027 | rsr | 54 34694 | qrq | 44 33361 | pqp | 34 32028 | opo | 24 30695 | non | 14 29362 | mnm | 4 28029 | lml | 57 26696 | klk | 47 25363 | jkj | 37 24030 | iji | 27 22697 | hih | 17 21364 | ghg | 7 20031 | fgf | 60 18698 | efe | 50 17365 | ded | 40 16032 | cdc | 30 14699 | bcb | 20 13366 | aba | 10 12033 | 9a9 | 0 to f=(n=45358)=>n%63?f(n-1333)+n.toString(36)+' ':'' после решений Конора О'Брайена и FrownyFrog

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

 

Пппппппп


Рег
10 Nov, 2011

Тем
64

Постов
213

Баллов
563
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно