Untuk merayakan Rounded Pi Day, Anda harus memanfaatkan tanggal hari ini untuk membuat program yang mengambil diameter lingkaran dan menampilkan kelilingnya dengan mengalikan diameter dengan 3,1416, di mana 3,1416 harus diperoleh dengan menggunakan tanggal hari ini.
Input 3
Output 9.4248
etc.
Tidak menganggap tanggal sebagai input. Anda tidak harus menggunakan semua komponen tanggal tetapi digit pi harus berasal dari memformat objek Date atau menggunakan objek date untuk mendapatkannya. Jawabannya sejauh ini terlihat bagus.
Tidak yakin apa lagi yang harus ditentukan. Semua jawaban sejauh ini memenuhi apa yang saya harapkan.
Kendala saya adalah bahwa Anda harus menggunakan komponen tanggal untuk membuat Pi. Anda tentu saja dapat menggunakan komponen, kalikan dengan 0 lalu tambahkan 3,1416, tapi itu membosankan dan membuang-buang karakter berharga!
Kode terpendek menang!
sumber
pi
Jawaban:
05AB1E,
1613 byteCobalah online.
Sayangnya bug dengan floats membuat byte ini lebih lama: /
Terima kasih kepada Adnan karena bermain golf 3 byte.
Penjelasan
sumber
¦¦
bukannya2000-
tiga byte lebih pendek;)žfžežg
terdengar seperti kata bahasa Ceko yang bagus :)C, 32 byte
Jika kehilangan sedikit akurasi lebih baik, saya bisa turun menjadi sekitar 29 byte yang masih akurat hingga 4 digit melewati desimal (pada saat posting ini):
sumber
#include<time.h>
?#include
header perpustakaan standar. Memasukkannya secara manual hampir selalu merupakan ide yang baik, tetapi menghilangkannya membuat kode golf di C jauh lebih mudah.main
fungsi sampel untuk menunjukkan bagaimana memanggil argumen tunggal makro ini.AppleScript,
122120 byteVariabel a
Variabel a adalah objek tanggal. Saya membatalkan semua informasi kencan saya.
Bulan, hari, dan tahun
Panggilan bulan, hari, dan tahun sebenarnya mengembalikan objek yang biasanya mengembalikan string. Untuk menggunakannya dengan benar sebagai angka, saya telah mengelilinginya di kedua sisi dengan operasi matematika untuk secara otomatis melemparkannya ke angka.
1e-4
1e-4
byte lebih pendek dari.0001
.mod.01
.
bertindak sebagai pemisah ke AppleScript koreksi otomatis. Dengan menggunakan ini, saya dapat menggunakan modulo dan masih menyimpannya byte untuk saya sendiri.Tidak ada pernyataan kembali / log
Nilai terakhir yang dihitung secara otomatis dikembalikan oleh program. Saya menampilkan nomor yang dihitung melalui kotak kembali.
Dan ini dia gif!
sumber
Mathematica + coreutils, 20 byte
Untungnya, Mathematica menginterpretasikan output dari perintah eksternal sebagai ekspresi. Dalam hal ini outputnya adalah float yang valid, sehingga perkalian dengan argumen fungsi
#
tersirat.sumber
Lua,
3027 BytesLipat gandakan argumen baris perintah pertama dengan tanggal saat ini dalam format
mm.ddyy
, yang sebenarnya03.1416
.sumber
Bash + bc,
2520 byteBerkat manatwork karena telah menghemat lima byte.
Pemakaian:
sumber
date +%m.%d%y\*$1|bc
PowerShell v2 +,
462825 byteCukup mudah. Mengambil input
$args[0]
dan mengalikannya dengan tanggal diformat sebagaiM.dy
(yangGet-
tersirat). Perhatikan bahwa ini mungkin membutuhkan waktu lama untuk dijalankan pada v2 karena ia dapat mengganti kemungkinanDate
(misalnya, memeriksa%PATH%
variabel lingkungan Anda , dll.) Sebelum memutuskanGet-Date
.sumber
-f
?-Format
. Dengan flag seperti ini, Anda hanya perlu tidak ambigu (misalnya, jika Anda memiliki-Debug
dan-Delimiter
sebagai opsi potensial, Anda memerlukan setidaknya tiga huruf untuk membedakan). Menghapus ruang berarti PowerShell mencoba mengurai bendera-F"M.dy"
tetapi tidak dapat menemukan argumen yang cocok, dan karenanya menimbulkan kesalahan.-f
operator. Masuk akal total sekarang.R 3.2.4,
555147 bytesunting Saya sadar saya bisa menggunakan
scan
terima kasih @FryAmTheEggMan. Mengurangi 4 byte berkat @MickyT.Usaha pertama di golf. Selamat hari pi!
sumber
f=
.scan()*as.numeric(format(Sys.Date(),'%m.%d%y'))
as.double
bukannyaas.numeric
menyimpan byte tambahanGNU Awk, 23 karakter
Contoh dijalankan:
sumber
Pyth, 19 byte
Coba di sini!
Hanya bekerja pada 2016-03-14 tentu saja.
Penjelasan
sumber
PHP,
45262524 byteMenggunakan penyandian Windows-1252
Jalankan seperti ini:
date()
bukanDateTime::format
sumber
$n
via/?n=3
di url.php.ini
file. kata aross sebelum itu ingin menjauhi metode seperti itu.Python 2, 58 karakter
Cobalah!
Penjelasan:
sumber
JavaScript,
4139 karakterIni menggunakan metode khusus Firefox .
Terimakasih untuk:
Contoh dijalankan (Firefox Web Console):
Catatan: ini akan gagal di Firebug Console. Tampaknya Firebug melakukan beberapa ekspansi pada string template, mentransformasikannya
`%m.%d%y`
menjadi`%__fb_scopedVars(m).d%y`
sebelum meneruskannya ke kode.sumber
d=>new Date().toLocaleFormat`%m.%d%y`*d
new
dari sana.('...')
dengan 2 backticks, itu 2 byte.Ruby, 40 byte
sumber
Mathematica, 54
sumber
Vitsy + coreutils, 19 byte
Penjelasan:
Tidak dapat dijalankan dalam mode aman, karena ini menggunakan metode exec Runtime.
sumber
SpecBAS , 39 byte
Tidak ada yang luar biasa. Memformat tanggal sebagai string kemudian mengalikan input dengan
VAL
(nilai) string itu.sumber
Oracle 11g,
5049 bytesatu byte lebih sedikit, terima kasih kepada @MickyT
sumber
FROM
Python 3,
7454 bytemenggunakan modul waktu alih-alih datetime seperti Loovjo's Answer
solusi sebelumnya
sumber
Google Sheets, 13 byte
Bytes dihitung dengan satu byte per karakter, nol byte per sel kecuali untuk sel input yang ditunjuk, dua byte. Tanda sama dengan untuk memulai formula tidak dihitung. (Saya tidak tahu apakah ini standar, tolong perbaiki saya jika saya salah.)
Jalankan cuplikan untuk melihat kode.
Ini berfungsi karena Anda dapat menentukan format tanggal Anda sendiri di Google Sheets. Saya membuatnya jadi begitu
<month>.<day><year>
.sumber
Pyke ,
1615 byte, pengkodean ASCIIPenjelasan:
atau 11 byte (tidak kompetitif), (menambahkan string tunggal, 2 digit tahun, jumlah string)
Penjelasan:
sumber
JavaScript ES6,
6866 byteDisimpan 2 byte berkat dev-null!
Fungsi anonim. Beberapa menggunakan:
sumber
with
Tcl / Tk, 58 byte
(Itu program yang lengkap. Jika Anda ingin menipu dan menghapus
puts
pernyataan eksplisit maka itu hanya 51 byte - Anda harus memulai tclsh dan mengetik / menempelkan yang berikut secara langsung, :)sumber
Java 114 byte
sumber
float p(float d){return d*Float.parseFloat(new SimpleDateFormat("MM.ddyy").format(new Date()));}
Racket, 112 karakter
Membaca angka dari input dalam sintaks pembaca standar.
sumber
TI-84 Basic, 30 byte
Bekerja pada kalkulator TI-83/84; E adalah token notasi ilmiah dan ~ adalah token negatif.
Kasus cobaan
sumber
R 48 byte
sumber
MATL , 17 byte
Cobalah online!
sumber
TI-BASIC,
16139 byteKami membulatkan
π
ke beberapa tempat desimal yang sama dengan minimum{month,day,year}
, dan kemudian mengalikannya dengan input.Ini adalah fungsi yang mengambil input melalui X. Simpan ke salah satu variabel-Y, misalnya
Y1
, lalu panggil sepertiY1([number])
di homescreen.sumber
Ans
diizinkan.APL , 19 byte
⎕TS
adalah2016 3 14 12 34 56 789
yaitu 14 Mar rd 2016 tepat sebelum 12:35⍕
make menjadi string, yaitu'2016 3 14 12 34 56 789'
8↑2↓
menjatuhkan dua yang pertama ('20'
) kemudian mengambil berikutnya delapan ('16 3 14 '
)2⌽
memutar dua karakter, memberikan' 3 14 16'
⍎
make menjadi angka (3 14 16
)⌽
membalikkan daftar, memberikan16 14 3
0.01⊥
evaluasi dalam basis ¹/₁₀₀ , = 16 × 0,01² + 15 × 0,01¹ + 3 × 0,01⁰ = 0,0016 + 0,15 + 3 = 3,1416⎕×
dikalikan dengan inputatau
⎕TS
adalah2016 3 14 12 34 56 789
, yaitu 14 Mar rd 2016 tepat sebelum 12:35⍕
make menjadi string, yaitu'2016 3 14 12 34 56 789'
7↑2↓
menjatuhkan dua yang pertama ('20'
) kemudian mengambil berikutnya tujuh ('16 3 14'
)2⌽
memutar dua karakter, memberikan' 3 1416'
⍎
make menjadi angka (3 1416
)⌽
membalikkan daftar, memberikan1416 3
1E¯4⊥
evaluasi dalam basis ¹/ ₁₀₀₀₀, = 1416 × 0.01¹ + 3 × 0.01⁰ = 0.1416 + 3 = 3.1416⎕×
dikalikan dengan inputsumber