Um den Rounded Pi Day zu feiern, müssen Sie das heutige Datum nutzen, um ein Programm zu erstellen, das den Durchmesser eines Kreises erfasst und dessen Umfang ausgibt, indem Sie den Durchmesser mit 3.1416 multiplizieren, wobei 3.1416 mit dem heutigen Datum erhalten werden muss.
Input 3
Output 9.4248
etc.
Nimmt das Datum nicht als Eingabe. Sie müssen nicht alle Komponenten des Datums verwenden, aber die Ziffern von pi müssen aus der Formatierung eines Datumsobjekts oder der Verwendung eines Datumsobjekts stammen, um es zu erhalten. Die Antworten sehen bisher gut aus.
Ich bin mir nicht sicher, was ich sonst angeben soll. Alle bisherigen Antworten entsprechen meinen Erwartungen.
Meine Einschränkung war, dass Sie Komponenten des Datums verwenden müssen, um mit Pi zu kommen. Sie können natürlich die Komponenten verwenden, mit 0 multiplizieren und dann 3.1416 hinzufügen, aber das ist langweilig und verschwendet wertvolle Zeichen!
Kürzester Code gewinnt!
quelle
pi
Antworten:
05AB1E,
1613 BytesProbieren Sie es online aus.
Leider macht ein Fehler mit Floats dieses Byte länger: /
Vielen Dank an Adnan für das Golfen mit 3 Bytes.
Erläuterung
quelle
¦¦
Stattdessen2000-
ist drei Bytes kürzer;)žfžežg
klingt wie ein schönes tschechisches Wort :)C 32 Bytes
Wenn es in Ordnung ist, ein bisschen mehr Genauigkeit zu verlieren, kann ich es auf ungefähr 29 Bytes bringen, wobei es immer noch auf 4 Stellen nach dem Komma genau ist (zum Zeitpunkt dieses Beitrags):
quelle
#include<time.h>
?#include
Standard-Bibliotheks-Header verwenden. Sie manuell einzubeziehen ist fast immer eine gute Idee, aber das Weglassen von Code erleichtert das Golfen in C erheblich.main
bereitzustellen, um zu demonstrieren, wie man dieses Makro mit einem einzigen Argument aufruft.AppleScript,
122120 BytesVariable a
Variable a ist ein Datumsobjekt. Ich rufe alle meine Datumsangaben ab.
Monat, Tag und Jahr
Die Aufrufe von Monat, Tag und Jahr geben tatsächlich ein Objekt zurück, das normalerweise eine Zeichenfolge zurückgibt. Um es richtig als Zahl zu verwenden, habe ich es auf beiden Seiten mit mathematischen Operationen umgeben, um es automatisch in eine Zahl umzuwandeln.
1e-4
1e-4
ist ein Byte kürzer als.0001
.mod.01
.
Dient als Trennzeichen für die automatische AppleScript-Korrektur. Auf diese Weise kann ich modulo verwenden und trotzdem ein Byte für mich behalten.Keine Rückmeldung / Protokoll
Der zuletzt automatisch berechnete Wert wird vom Programm zurückgegeben. Ich gebe die berechnete Anzahl über die Rückgabebox aus.
Und hier ist ein GIF davon!
quelle
Mathematica + Coreutils, 20 Bytes
Glücklicherweise interpretiert Mathematica die Ausgabe eines externen Befehls als Ausdruck. In diesem Fall ist die Ausgabe ein gültiger Gleitkommawert, sodass die Multiplikation mit dem Funktionsargument
#
impliziert ist.quelle
Lua,
3027 BytesMultiplizieren Sie das erste Befehlszeilenargument mit dem aktuellen Datum im
mm.ddyy
tatsächlichen Format03.1416
.quelle
Bash + Bc,
2520 BytesDank an manatwork für die Einsparung von fünf Bytes.
Verwendung:
quelle
date +%m.%d%y\*$1|bc
PowerShell v2 +,
462825 ByteZiemlich einfach. Nimmt Eingaben entgegen
$args[0]
und multipliziert sie mit dem Datum, das alsM.dy
(Get-
impliziert) formatiert ist. Beachten Sie, dass die Ausführung von v2 sehr lange dauern kann, da mögliche SubstitutionenDate
(z. B. Überprüfen der%PATH%
Umgebungsvariablen usw.) wiederholt werden, bevor Sie sich für v2 entscheidenGet-Date
.quelle
-f
?-Format
. Mit solchen Flags müssen Sie nur eindeutig sein (wenn Sie zum Beispiel-Debug
und-Delimiter
als mögliche Optionen hätten, würden Sie mindestens drei Buchstaben zur Unterscheidung benötigen). Das Entfernen des Leerzeichens bedeutet, dass PowerShell versucht, das Flag zu analysieren,-F"M.dy"
jedoch kein passendes Argument findet und daher einen Fehler auslöst.-f
Operator interpretiert . Macht jetzt total Sinn.R 3.2.4,
555147 BytesBearbeiten Ich erkannte , ich konnte
scan
dank @FryAmTheEggMan. Reduzierte 4 Bytes dank @MickyT.Erster Golfversuch. Alles Gute zum Pi Tag!
quelle
f=
.scan()*as.numeric(format(Sys.Date(),'%m.%d%y'))
as.double
stattas.numeric
speichert ein zusätzliches ByteGNU Awk, 23 Zeichen
Probelauf:
quelle
Pyth, 19 Bytes
Probieren Sie es hier aus!
Funktioniert natürlich nur am 14.03.2016.
Erläuterung
quelle
PHP,
45262524 BytesVerwendet die Windows-1252-Codierung
Laufen Sie wie folgt:
date()
anstelle von gespeichertDateTime::format
quelle
$n
via/?n=3
in der URL verwenden.php.ini
Datei festgelegt werden. sagte aross vorher, der von einer solchen methode ablenken will.Python 2, 58 Zeichen
Versuch es!
Erläuterung:
quelle
JavaScript,
4139 ZeichenHierbei wird eine firmeneigene Nur-Firefox- Methode verwendet.
Dank an:
Beispiellauf (Firefox Web Console):
Hinweis: Dies schlägt in der Firebug-Konsole fehl. Es scheint , dass eine gewisse Ausdehnung Firebug auf der Vorlage Zeichenfolge durchführt, die Umwandlung
`%m.%d%y`
in die,`%__fb_scopedVars(m).d%y`
bevor sie an den Code übergeben.quelle
d=>new Date().toLocaleFormat`%m.%d%y`*d
new
von dort zu entfernen .('...')
mit 2 Backticks ersetzt habe, sind das 2 Bytes.Ruby, 40 Bytes
quelle
Mathematica, 54
quelle
Vitsy + Coreutils, 19 Bytes
Erläuterung:
Kann nicht im abgesicherten Modus ausgeführt werden, da hierfür die exec-Methode der Runtime verwendet wird.
quelle
SpecBAS , 39 Bytes
Nichts Außergewöhnliches. Formatiert das Datum als Zeichenfolge und multipliziert dann die Eingabe mit dem
VAL
(Wert) dieser Zeichenfolge.quelle
Oracle 11g,
5049 BytesDank @MickyT ein Byte weniger
quelle
FROM
Python 3,
7454 BytesVerwenden Sie das Zeitmodul anstelle von datetime wie Loovjos Antwort
vorherige Lösung
quelle
Google Sheets, 13 Bytes
Bytes werden mit einem Byte pro Zeichen berechnet, null Bytes pro Zelle, mit Ausnahme der festgelegten Eingabezelle, zwei Bytes. Das Gleichheitszeichen zum Starten einer Formel wird nicht gezählt. (Ich weiß nicht, ob dies Standard ist. Bitte korrigieren Sie mich, wenn ich falsch liege.)
Führen Sie den Code aus, um den Code zu sehen.
Dies funktioniert, weil Sie in Google Sheets Ihre eigenen Datumsformate definieren können. Ich habe es so gemacht, dass es ist
<month>.<day><year>
.quelle
Pyke ,
1615 Bytes, ASCII - CodierungErläuterung:
oder 11 Bytes (nicht konkurrierend), (fügt Zeichenketten-Singles, zweistellige Jahreszahlen, Zeichenketten-Summen hinzu)
Erläuterung:
quelle
JavaScript ES6,
6866 Bytes2 Bytes gespart dank dev-null!
Anonyme Funktion. Einige Anwendungen:
quelle
with
Tcl / Tk, 58 Bytes
(Das ist ein vollständiges Programm. Wenn Sie die explizite
puts
Anweisung schummeln und entfernen möchten, sind es nur 51 Bytes - Sie müssten jedoch tclsh starten und Folgendes direkt eingeben / einfügen :)quelle
Java 114 Bytes
quelle
float p(float d){return d*Float.parseFloat(new SimpleDateFormat("MM.ddyy").format(new Date()));}
Schläger, 112 Zeichen
Liest die Zahl aus der Eingabe in der Standardlesersyntax.
quelle
TI-84 Basic, 30 Byte
Funktioniert mit TI-83/84-Taschenrechnern; E ist das wissenschaftliche Notationstoken und ~ ist das negative Token.
Testfall
quelle
R 48 Bytes
quelle
MATL , 17 Bytes
Probieren Sie es online!
quelle
TI-BASIC,
16139 BytesWir runden
π
auf eine Dezimalstelle, die dem Minimum von entspricht{month,day,year}
, und multiplizieren sie dann mit der Eingabe.Diese Funktion nimmt Eingaben über X entgegen. Speichern Sie sie beispielsweise in einer der Y-Variablen
Y1
und rufen Sie sie dann wieY1([number])
auf dem Startbildschirm auf.quelle
Ans
zulässig ist.APL , 19 Bytes
⎕TS
ist2016 3 14 12 34 56 789
14 , dh März rd 2016 kurz vor 12.35⍕
make in string, dh'2016 3 14 12 34 56 789'
8↑2↓
fallen ersten beiden ('20'
) dann nächsten acht nehmen ('16 3 14 '
)2⌽
drehen zwei Zeichen, was' 3 14 16'
⍎
machen in Zahlen (3 14 16
)⌽
kehren Sie die Liste, was zu16 14 3
0.01⊥
bewerten in Basis ¹/₁₀₀ , = 16 × 0,01² + 15 × 0,01¹ + 3 × 0,01⁰ = 0,0016 + 0,15 + 3 = 3,1416⎕×
multiplizieren mit Eingabeoder
⎕TS
Dies ist2016 3 14 12 34 56 789
, dh der 14. März 2016, kurz vor 12:35 Uhr. make in string, dh erst zwei ( ) ablegen, dann die nächsten sieben ( ) zwei Zeichen drehen, make in Zahlen ( ) die Liste umkehren und auswerten in Basis ¹⁄ & Sub1; & sub0 ;, = 1416 x 0,01¹ + 3 x 0,01 & sub0; = 0,1416 + 3 = 3,1416 multiplizieren mit Eingabe⍕
'2016 3 14 12 34 56 789'
7↑2↓
'20'
'16 3 14'
2⌽
' 3 1416'
⍎
3 1416
⌽
1416 3
1E¯4⊥
⎕×
quelle