Überblick
Betrachten Sie die folgende Aufgabe:
Bei einer positiven ganzen Zahl n> 0 wird die ganze Quadratwurzel ausgegeben. Die ganzzahlige Quadratwurzel einer Zahl n ist der größte Wert von x mit x 2 ≤ n , der normalerweise durch die Formel ausgedrückt wird
floor(sqrt(n))
.Beispiele:
25 -> 5
,24 -> 4
,40 -> 6
,1 -> 1
.
Diese Aufgabe ist für sich genommen einfach genug. In dieser Herausforderung besteht Ihre Aufgabe jedoch darin, dies in so vielen Sprachen wie möglich mit einem Satz von nur 25 Zeichen zu lösen .
Beispiel
Zuerst müssen Sie einen Satz (keine Duplikate) von 25 Bytes auswählen . Es könnte ungefähr so aussehen (beachten Sie das führende Leerzeichen):
()*-.05:=>Mabdhilmnqrst|
Ihre Herausforderung ist es dann, mit nur Zeichen in diesem Satz eine Lösung für das Problem in so vielen textbasierten Sprachen wie möglich zu konstruieren . Sie können Zeichen so oft wie nötig verwenden, aber Sie dürfen keine Zeichen außerhalb des Satzes verwenden.
Die Lösungen können entweder vollständige Programme oder Funktionen sein , aber keine Schnipsel. Mit diesem Zeichensatz könnte ich beispielsweise Folgendes tun:
M -> (int) Math.sqrt(M) // Java (lambda expression)
M => Math.sqrt(M)|0 // Javascript (unnamed function)
lambda M: int(M**.5) // Python (lambda function)
Da ich 3 Sprachen verwendet habe, würde dies eine Punktzahl von 3 ergeben .
Bitte geben Sie in Ihrer Antwort auch die Anzahl der verwendeten Bytes an.
Regeln
- Dies ist eine Rosetta-Stone- Herausforderung - Ihre Punktzahl ist die Anzahl der Sprachen, die Ihre Einreichung enthält. Die höchste Punktzahl gewinnt. Es gelten Standardlücken.
- Für diese Herausforderung zählt eine 'Sprache' als eine deutlich andere Programmiersprache - mehrere Versionen derselben Sprache (Python 2, Python 3 usw.) sind verboten.
- Programme müssen nur für Eingaben innerhalb des Integer-Standardbereichs der Sprache funktionieren.
- Programme mit genau demselben Quellcode (Polyglots) sind nicht zulässig.
- Genauer gesagt handelt es sich um eine Menge von Bytes und nicht um Zeichen. Sie können also 05AB1E
£
und Jellyɱ
als dasselbe Zeichen verwenden (da sie denselben Codepunkt haben).
Bitte haben Sie nicht das Gefühl, dass Sie alle anderen Lösungen schlagen müssen - wenn Sie eine interessante Antwort haben, posten Sie sie!
P3 10 10 255
...)[]<>.,+-
deutlich von Brainfuck? Was ist mit SNUSP , einem 2D-Brainfuck-Derivat? Für beide würde der resultierende Code in Brainfuck nicht funktionieren.Antworten:
20 Sprachen
()-#*.05;=>^Vefikloqrst
Bisher mit (24 Zeichen):quelle
flr.(tt ^.5)
für Wonder hinzuzufügen (keine zusätzlichen Zeichen).{}[]
können Sie Brain-Flak hinzufügen. Hier ist das Programm~
, können Sie diessqrt~~
in Stacked tun . Es nimmt Eingaben vom TOS entgegen und belässt Ausgaben auf dem Stapel.isqrt
isqrt
in julia würde nicht zählen, da polyglotte nicht erlaubt sind.10 Sprachen
Zeichensatz mit 19 Zeichen (in CP-1252 ):
Wobei
␊
für einen Zeilenvorschub und␍
für einen Wagenrücklauf steht .( Skript zur Überprüfung der Zeichen )
Gelee, 2 Bytes
Probieren Sie es online!
05AB1E, 2 Bytes
Probieren Sie es online!
GS2, 2 Bytes
Probieren Sie es online!
Jolf, 3 Bytes
Probieren Sie es hier aus! (funktioniert am besten mit Firefox)
Japt, 2 Bytes
Probieren Sie es hier aus!
MATL, 3 Bytes
Probieren Sie es online!
Pyke, 3 Bytes
Probieren Sie es hier aus!
Pyth, 6 Bytes
Probieren Sie es hier aus!
Oase, 6 Bytes
Probieren Sie es online!
2sable, 9 Bytes
Probieren Sie es online!
quelle
cU
arbeitet auch in Jolf.c
, der Liste der Zeichen hinzuzufügen . Er verwendet bereits sowohlm
(in derf
Unterantwort von Oasis) als auch (in den Unterantworten von Japt und Pyke).5 Sprachen
Bald werden weitere Sprachen hinzugefügt.
Zeichensatz (22 Bytes):
Pyth
Javascript
Tatsächlich
CJam
Python
quelle
|
durch ersetzen^
, um ein Byte in Ihrem Zeichensatz zu speichern.5 Sprachen
18 Zeichen.
Ich versuche, keine Buchstaben zu verwenden ...
Brainfuck , Brainfuck ++ , Brainfuck-ng , Braintrust , ...
Funktioniert nicht für over,
224
da256
(= (sqrt (225) +1) ^ 2) überläuft.Ersetzen Sie alle
-
s durch+
s, um ein Zeichen weniger zu verwenden. (zB-
-> 255+
s)Ursprüngliches Programm
Brain-Flak
@ WheatWizard-Code. Danke für die Erlaubnis!
Brain-Flueue
Ein weiterer @ WheatWizard-Code.
Numberwang
Löffel
Per Metakonsens sollte dieser Code in Ordnung sein, auch wenn derzeit keine Dolmetscher verfügbar sind.
quelle
5 Sprachen
()*/12 dlinpqrstu
Bisher mit und newline (18 Zeichen).Common Lisp
Eine eingebaute Funktion.
QBasic
Python 3
Python 3 wird für die Gleitkommadivision ohne Dezimalstellen verwendet.
Pip
Unnötig golfen, um den unären Inversionsoperator vorzuführen
/
. Übernimmt die Eingabe von stdin. Probieren Sie es online!tinylisp
sqrt
ist eine Hilfsfunktion, deren Argumente sind: die aktuelle Schätzungn
, dasn
Quadrat und dieinput
Zahl. Wenninput
kleiner als istnsqr
, sind wir zu weit gegangen. Geben Sien
minus 1 zurück. andernfalls recurse, Zugabe von 1 bisn
und das Hinzufügenn + n + 1
zunsqr
. (Die Mathematik ist etwas kompliziert, da in tinylisp nur eine Subtraktion integriert ist.) Die zweite Zeile definiert unsere eigentliche Funktion, die eine einzelne nimmtinput
und das Ergebnis vonsqrt
mitn
beginnend bei 1 zurückgibt .quelle
{}[]
können Sie Brain-Flak hinzufügen. Hier ist das Programm6 Sprachen
Verwenden
retun flosq(agm1)\,i
und Erweitern von CodepunktenB1
undBC
für bisher 22 Byte.GameMaker-Sprache
Pyke
Julia
Ahorn
Stecken
TI-Basic (Hex-Dump)
Beachten Sie, dass 0x72
r
in ASCII ist.quelle
7 Sprachen
24
Zeichen:CJam
Java
Chaincode
Math ++
Grinsen
Stecken
Einlinear
R
Kostet zu viel Bytes
Python
quelle
R
:sqrt