Definisi:
- Segitiga dianggap sebagai segitiga siku-siku jika salah satu sudut dalam persis 90 derajat.
- Suatu bilangan dianggap rasional jika dapat diwakili oleh rasio bilangan bulat, yaitu
p/q
, di mana keduanyap
danq
bilangan bulat. - Angka
n
adalah angka kongruen jika ada segitiga siku-siku dari area din
mana ketiga sisinya rasional. - Ini adalah OEIS A003273 .
Tantangan
Ini adalah tantangan masalah keputusan . Diberikan nomor input x
,, mengeluarkan nilai yang berbeda dan konsisten jika x
merupakan angka kongruen, dan nilai berbeda dan konsisten terpisah jika x
bukan angka kongruen. Nilai-nilai output tidak harus benar-benar benar / salah dalam bahasa Anda.
Aturan khusus
Untuk keperluan tantangan ini, Anda dapat berasumsi bahwa dugaan Birch dan Swinnerton-Dyer adalah benar. Atau, jika Anda dapat membuktikan dugaan Birch dan Swinnerton-Dyer, klaim hadiah Millenium $ 1.000.000 Anda. ;-)
Contohnya
(Menggunakan True
nomor kongruen dan False
lainnya).
5 True
6 True
108 False
Aturan dan Klarifikasi
- Input dan output dapat diberikan dengan metode apa pun yang mudah .
- Anda dapat mencetak hasilnya ke STDOUT atau mengembalikannya sebagai hasil fungsi. Silakan sebutkan dalam kiriman Anda nilai apa yang bisa diambil oleh output.
- Program lengkap atau fungsi dapat diterima.
- Celah standar dilarang.
- Ini adalah kode-golf sehingga semua aturan golf biasa berlaku, dan kode terpendek (dalam byte) menang.
code-golf
decision-problem
number-theory
AdmBorkBork
sumber
sumber
Jawaban:
R,
179173142141137135134 byteMenggunakan argumen yang sama berdasarkan Teorema Tunnell , mengembalikan a
0
jikan
tidak kongruen dan1
sebaliknya. (Butuh waktu lama untuk menemukan batasan pada kondisi hanya berlaku untuk bilangan bulat kuadrat .)Cobalah online
Perbaikan yang dibawa oleh Arnaud dan Giuseppe (kode terakhir kebanyakan milik Guiseppe!), Dengan -3 berkat Robin
Analisis sintaksis:
dengan Teorema Tunnell yang menyatakan bahwa n adalah kongruen jika dan hanya jika jumlah solusi integer ke 2x² + y² + 8z² = n dua kali lipat jumlah solusi integer ke 2x² + y² + 32z² = n jika n ganjil dan jumlahnya solusi integer hingga 8x² + y² + 16z² = n adalah dua kali lipat jumlah solusi integer hingga 8x² + y² + 64z² = n jika n adalah genap.
sumber
@[username]
... Saya kira Anda ditarik ke dalam kode golf oleh Robin Ryder ??-n:n
? Saya tidak membaca teorema Tunnel, tetapi bagi saya sepertinya itun:0
akan bekerja dengan baik untuk -1 byte ... Juga, pro tip, jika Anda menekan tombol "tautan" di bagian atas TIO, Anda akan mendapatkan hasil yang bagus. format untuk menyalin dan menempel ke PPCG :-) EDIT: Saya melihat, ada beberapa kasus di manan:0
tidak berfungsi.Karat - 282 byte
Lihat juga:
dikoreksi genap / ganjil, terima kasih @Level River St
sumber
C ++ (gcc) ,
251234 byteTerima kasih kepada @arnauld karena menunjukkan kesalahan ketik saya.
-17 byte terima kasih kepada @ceilingcat.
Cobalah online!
Mengembalikan 1 jika
n
kongruen, 0 sebaliknya.sumber
JavaScript (ES7), 165 byte
Sama seperti jawaban @ NeilA. , ini didasarkan pada teorema Tunnell dan oleh karena itu mengasumsikan bahwa dugaan Birch dan Swinnerton-Dyer adalah benar.
Mengembalikan nilai Boolean.
Cobalah online!
Bagaimana?
sumber
Ruby , 126 byte
Cobalah online!
menemukan tempat untuk menginisialisasi
t=1
dan memperluas daftar kotak menjadi triplet alih-alih menggunakanq
untuk membuat salinan tambahan.Ruby , 129 byte
Cobalah online!
Menggunakan teorema Tunnell seperti jawaban lainnya. Saya menggunakan persamaan tunggal sebagai berikut.
Kami memeriksa kasing
k=8
dank=32
dan memeriksa apakah ada dua kali lebih banyak solusik=8
daripadak=32
. Hal ini dilakukan dengan menambahkank-16
ket
setiap kali kita menemukan solusi. Ini bisa +16 dalam casek=32
atau -8 dalam casek=8
. Secara keseluruhan angka tersebut kongruen jikat
sama dengan nilai awal di akhir fungsi.Penting untuk menemukan semua solusi untuk persamaan uji. Saya melihat banyak jawaban menguji antara +/-
sqrt n
. Sangat OK untuk menguji juga di luar batas ini jika membuat kode lebih pendek, tetapi tidak ada solusi yang ditemukan karena sisi kiri persamaan akan melebihin
. Hal yang saya lewatkan pada awalnya adalah bahwa negatif dan positifx,y,z
dianggap terpisah. Dengan demikian-3,0,3
menghasilkan tiga kotak9,0,9
dan semua solusi harus dihitung secara terpisah (0 harus dihitung sekali dan9
harus dihitung dua kali.)Kode tidak dikunci
sumber