Nicht-palindromisches polyglottes Boggle


11

Einführung

Die Zahl 101 ist ein Palindrom, da sie das gleiche vorwärts und rückwärts liest. Die Nummer 105 ist nicht. Jedoch 105 in Basis acht als 151 geschrieben, das ist Palindrom. Andererseits ist 103 in keiner Basis von 2 bis 101 ein Palindrom . Daher ist 103 streng nicht palindrom .

Die genaue Definition lautet: Eine nichtnegative ganze Zahl n ist streng nicht palindrom, wenn es sich nicht um ein Palindrom in einer Basis zwischen 2 und n-2 einschließlich handelt.

Die ersten streng nicht palindromischen Zahlen sind 0, 1, 2, 3, 4, 6, 11, 19, 47, 53, 79, 103, 137, 139, 149, 163, 167, 179, 223, 263, 269...( A016038 )

Schreiben Sie ein vollständiges Programm, das eine Zahl x von STDIN übernimmt und die x- te streng nicht palindromische Zahl druckt . Zum Beispiel 5würde die Eingabe die Ausgabe erzeugen 4.

Herausforderung

Die Herausforderung besteht darin, mehrere (ein oder mehrere) Programme zu schreiben, die diese Aufgabe jeweils in einer anderen Sprache lösen.

Anschließend müssen Sie alle Programme in ein rechteckiges Zeichenraster einfügen. Auf die Programme kann im Boggle-Stil zugegriffen werden. Das heißt, wechseln Sie von einem Zeichen zu einem benachbarten Zeichen (einschließlich diagonal), und verwenden Sie dasselbe Zeichen niemals mehr als einmal.

Zum Beispiel das folgende Raster:

abc
bdc

die Worte enthält abc, ccd, bbad, und bcdb, aber nicht ac, bdd, bcb, oder cbbc.

Jedes Programm muss nach diesen Regeln im Raster gefunden werden. Sie können jedoch dasselbe Zeichen in mehreren Programmen verwenden.

Ergebnis

Ihre Punktzahl ist die Anzahl der Zeichen im Raster, geteilt durch die Anzahl der Programme. Die niedrigste Punktzahl gewinnt!

Regeln

  • Zwei Sprachen gelten als unterschiedlich, wenn sie normalerweise unterschiedliche Namen haben und Versionsnummern ignorieren. Zum Beispiel sind C und C ++ unterschiedlich, aber Python 2 und Python 3 sind gleich.
  • Die Zeichen im Raster müssen alle aus druckbarem ASCII stammen, dh von bis zu ~Codepunkten 20durch FE.
  • Jedes Programm darf nur aus druckbarem ASCII plus Zeilenumbrüchen bestehen. Ersetzen Sie beim Einfügen eines Programms in das Raster jede neue Zeile durch ein Leerzeichen.
    • Ein Leerzeichen im Raster kann ein Leerzeichen in einem Programm und eine neue Zeile in einem anderen Programm darstellen.
  • Das Gitter muss ein Rechteck sein.
  • Nicht jedes Zeichen muss in einem Programm verwendet werden.

Sind einstellige Zahlen nicht palindrom? Sie lesen das gleiche vor und zurück.
Reto Koradi

@RetoKoradi Richtig. Aus diesem Grund berücksichtigen wir nur Basen kleiner als n-1, sodass immer mindestens zwei Ziffern vorhanden sind.
Ypnypn

Antworten:


10

19x2 = 38, 2 Programme, Punktzahl: 26 19,5 19

Hier ist das Board:

-:\~{.,><1\b_W%}}g}
1Wq{)_2W{$ase.=,do*

Dies enthält die folgenden Programme:

CJam (27 Bytes)

Wq~{{)_,2>W<{1$\b_W%=},}g}*

Testen Sie es hier.

Dies sind die Zeichen der Tafel, die für diesen Code verwendet werden:

   ~{ ,><1\b_W%}}g}
 Wq{)_2W{$    =,  *

GolfScript (34 Bytes)

-1:W\~{{).,2>W<{1$\base.W%=},}do}*

Testen Sie es hier.

Dies sind die Zeichen der Tafel, die für diesen Code verwendet werden:

-:\~{.,><1\b W%}} }
1W {) 2W{$ase.=,do*
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.