Angka poligon adalah jumlah titik dalam ukuran k
-gon n
.
Anda akan diberikan n
dan k
, dan tugas Anda adalah menulis program / fungsi yang menampilkan / mencetak nomor yang sesuai.
Mencetak gol
Ini adalah kode-golf . Solusi terpendek dalam byte menang.
Contoh
Nomor 3
hexagon rd ( k=6, n=3
) adalah 28
karena ada 28
titik - titik di atas.
Testcases
Dapat dihasilkan dari suite tes Pyth ini .
Penggunaan: dua baris per testcase, di n
atas, di k
bawah.
n k output
10 3 55
10 5 145
100 3 5050
1000 24 10990000
Informasi lebih lanjut
- Di Wikipedia: https://en.wikipedia.org/wiki/Polygonal_number
- Dalam Wolfram Mathworld: http://mathworld.wolfram.com/PolygonalNumber.html
- Dalam OEIS Wiki: http://oeis.org/wiki/Polygonal_numbers
- Urutan OEIS untuk n -gonal angka untuk berbagai n : 3 (A000217) , 4 (A000290) , 5 (A000326) , 6 (A000384) , 7 (A000566) , 8 (A000567) , 8 (A000567) , 9 (A001106) , 10 (A001106) , 10 (A001106) , 11 (A051682) , 12 (A051624) , 13 (A051865) , 14 (A051866) , 15 (A051867) , 16 (A051867) , 16 (A051868) , 17 (A051869) , 18 (A051870) , 19 (A051871) , 20 (A051872) , 21 (A051873) , 22 (A051874) , 23 (A051875) , 23 (A051875) , 24 (A051875) , 24 (A051875)
code-golf
sequence
number-theory
code-golf
math
geometry
code-golf
combinatorics
code-golf
integer
code-golf
arithmetic
number-theory
code-golf
arithmetic
restricted-source
number-theory
restricted-complexity
Biarawati Bocor
sumber
sumber
n=3
dank=6
ke dalam ruang tes Anda, Anda dapatkan15
. Jika Anda memasukkann=4
dank=6
, Anda mendapatkannya28
.Jawaban:
Jelly , 7 byte
Ini menggunakan rumus
untuk menghitung angka ke- s ke- n .
Cobalah online!
Bagaimana itu bekerja
sumber
Hexagony , 25 byte
Dibuka:
Membaca
k
dulu dann
kedua (menggunakan pemisah apa pun).Cobalah online!
Penjelasan
Program ini sepenuhnya linier, tetapi seperti biasa di Hexagony, urutan eksekusi ada di semua tempat:
Jalur dieksekusi dalam urutan abu-abu , biru tua , merah , biru muda , hijau tua , merah muda . Seperti yang Anda lihat, ketiganya
/
hanya bertindak untuk mengarahkan ulang aliran. Juga,.
ada no-ops. Melucuti semua fanciness heksagonal, program linear yang dihasilkan adalah:Ini menghitung rumus standar
seperti sebagian besar jawaban lainnya. Itu melakukannya dengan menggunakan lima tepi memori berikut, dengan penunjuk memori (MP) dimulai seperti yang ditunjukkan dengan warna merah:
Begini cara melakukannya:
sumber
05AB1E , 8 byte
Kode:
Penjelasan:
Menggunakan pengodean CP-1252 . Cobalah online! .
sumber
Labirin , 13 byte
Cobalah online!
Penjelasan
Karena perintah satu-karakternya (yang hanya merupakan kebutuhan dari ke-2-an bahasa), Labyrinth dapat secara mengejutkan golf untuk program linier.
Ini menggunakan rumus yang sama dengan beberapa jawaban lain:
Pada titik ini, penunjuk instruksi menyentuh jalan buntu dan berbalik. Sekarang
+
dieksekusi lagi, yang merupakan no-op (karena bagian bawah stack secara implisit diisi dengan jumlah nol yang tak terbatas), dan kemudian/
mencoba pembagian-oleh-nol yang mengakhiri program dengan kesalahan.sumber
JavaScript (ES6),
2422 bytePenjelasan: Setiap n-gon dapat dianggap sebagai n poin sepanjang satu sisi ditambah k-2 segitiga ukuran n-1, yaitu n + n (n-1) (k-2) / 2.
sumber
k--*n--+2-n
belum diuji(k,n)=>n*(--k*--n-n+2)/2
masih 24 byte.--n
untuk(n-1)
. Doh!k=>n=>n+n*--n*(k-2)/2
CJam, 13 byte
Cobalah online
sumber
APL (Dyalog Extended) , 11 byte SBCS
Terima kasih kepada Adám atas bantuannya untuk menyarankan versi alternatif ini.
Cobalah online!
Penjelasan
APL (Dyalog Unicode) ,
1211 byte SBCSTerima kasih kepada Adám atas bantuannya dalam bermain golf ini.
Sunting: -1 byte dari ngn.
Cobalah online!
Tidak melakukanolf
sumber
Sebenarnya, 12 byte
Cobalah online!
Penjelasan:
sumber
dc , 14 byte
Cobalah online!
Penjelasan
Ini menggunakan rumus berikut (perhatikan bahwa T n =
n*(n-1)/2
):sumber
Aceto ,
1815 byteJawaban dc Port of the Bruce Forte :
Disimpan 3 byte dengan menyadari bahwa program Aceto "murni" (tanpa perintah gabungan) dapat ditulis secara linear.
sumber
MathGolf , 8 byte
Cobalah online!
Alternatif 8-byter adalah
┼┐*½\⌡*+
, yang mengambil input dalam urutan terbalik.sumber
> <> , 13 byte
Cobalah online!
sumber
Mathematica, 17 byte
Penerapan formula secara langsung.
Pemakaian
sumber
J, 14 byte
Berdasarkan formula.
Pemakaian
Penjelasan
sumber
TI-Basic, 20 byte
sumber
Bahasa GameMaker, 44 byte
sumber
Python 3,
313028 bytePersamaan langsung dari artikel wiki ini
Terima kasih kepada @Mego karena telah menghemat satu byte!
sumber
Fourier, 18 byte
Cobalah di FourIDE!
Mengambil k sebagai input pertama dan n sebagai input kedua. Gunakan rumus:
Pseudocode Penjelasan:
sumber
Excel, 22 byte
Menghitung angka
A1
ke-B1
g.sumber
Java 8, 21 byte
Semua jawaban individual dengan panjang byte yang sama:
Penjelasan:
Coba di sini.
sumber
Japt ,
1412 byteCobalah
sumber
Sekam , 9 byte
Cobalah online!
Penjelasan
Menggunakan rumus yang sama seperti pada
dc
jawaban saya :sumber
APL (NARS), 16 karakter, 32 byte
Ini didasarkan dari fakta yang nampak tes n × (n-1) / 2 = sum (1..n-1):
sumber