[分享] a^2 + b^2 + c^2 = d^2

看板tutor作者 (vv)時間13年前 (2012/12/31 16:52), 編輯推噓14(1400)
留言14則, 13人參與, 最新討論串1/1
有自己在出數學題目的高中老師, 在空間向量的時候, 應該會遇到"湊數字"的問題 也就是, 若 a^2 + b^2 + c^2 = d^2 時, 要讓 a, b, c, d 都是正整數, 除了 (a, b, c) = (2, 2, 1) 真的就很難找到好用的數字 所以, 就寫了個小程式, 把答案附上, 給老師們參考 2^2 + 2^2 + 1^2 = 3^2 6^2 + 3^2 + 2^2 = 7^2 7^2 + 4^2 + 4^2 = 9^2 7^2 + 6^2 + 6^2 = 11^2 8^2 + 4^2 + 1^2 = 9^2 9^2 + 6^2 + 2^2 = 11^2 11^2 + 10^2 + 2^2 = 15^2 12^2 + 4^2 + 3^2 = 13^2 12^2 + 9^2 + 8^2 = 17^2 12^2 + 12^2 + 1^2 = 17^2 14^2 + 5^2 + 2^2 = 15^2 15^2 + 10^2 + 6^2 = 19^2 16^2 + 11^2 + 8^2 = 21^2 16^2 + 13^2 + 4^2 = 21^2 16^2 + 15^2 + 12^2 = 25^2 17^2 + 6^2 + 6^2 = 19^2 18^2 + 6^2 + 1^2 = 19^2 18^2 + 13^2 + 6^2 = 23^2 18^2 + 14^2 + 3^2 = 23^2 19^2 + 8^2 + 4^2 = 21^2 20^2 + 5^2 + 4^2 = 21^2 20^2 + 12^2 + 9^2 = 25^2 20^2 + 20^2 + 17^2 = 33^2 21^2 + 16^2 + 12^2 = 29^2 21^2 + 18^2 + 14^2 = 31^2 22^2 + 6^2 + 3^2 = 23^2 22^2 + 14^2 + 7^2 = 27^2 22^2 + 21^2 + 6^2 = 31^2 23^2 + 10^2 + 10^2 = 27^2 23^2 + 14^2 + 2^2 = 27^2 24^2 + 12^2 + 11^2 = 29^2 24^2 + 16^2 + 3^2 = 29^2 24^2 + 24^2 + 23^2 = 41^2 25^2 + 10^2 + 2^2 = 27^2 25^2 + 20^2 + 8^2 = 33^2 26^2 + 7^2 + 2^2 = 27^2 26^2 + 18^2 + 15^2 = 35^2 26^2 + 22^2 + 19^2 = 39^2 27^2 + 14^2 + 6^2 = 31^2 27^2 + 24^2 + 8^2 = 37^2 28^2 + 16^2 + 7^2 = 33^2 28^2 + 17^2 + 4^2 = 33^2 28^2 + 21^2 + 12^2 = 37^2 28^2 + 24^2 + 3^2 = 37^2 29^2 + 22^2 + 14^2 = 39^2 29^2 + 26^2 + 2^2 = 39^2 29^2 + 28^2 + 20^2 = 45^2 30^2 + 6^2 + 5^2 = 31^2 30^2 + 17^2 + 6^2 = 35^2 30^2 + 18^2 + 1^2 = 35^2 30^2 + 25^2 + 18^2 = 43^2 30^2 + 30^2 + 7^2 = 43^2 31^2 + 8^2 + 8^2 = 33^2 31^2 + 24^2 + 12^2 = 41^2 32^2 + 7^2 + 4^2 = 33^2 32^2 + 8^2 + 1^2 = 33^2 32^2 + 24^2 + 9^2 = 41^2 33^2 + 10^2 + 6^2 = 35^2 33^2 + 24^2 + 4^2 = 41^2 34^2 + 14^2 + 13^2 = 39^2 34^2 + 19^2 + 2^2 = 39^2 34^2 + 27^2 + 18^2 = 47^2 34^2 + 31^2 + 22^2 = 51^2 35^2 + 14^2 + 10^2 = 39^2 35^2 + 28^2 + 4^2 = 45^2 36^2 + 8^2 + 3^2 = 37^2 36^2 + 24^2 + 23^2 = 49^2 36^2 + 28^2 + 27^2 = 53^2 36^2 + 31^2 + 12^2 = 49^2 36^2 + 32^2 + 9^2 = 49^2 36^2 + 33^2 + 4^2 = 49^2 37^2 + 20^2 + 16^2 = 45^2 37^2 + 36^2 + 12^2 = 53^2 38^2 + 18^2 + 9^2 = 43^2 38^2 + 21^2 + 18^2 = 47^2 38^2 + 27^2 + 6^2 = 47^2 38^2 + 31^2 + 14^2 = 51^2 38^2 + 34^2 + 1^2 = 51^2 38^2 + 37^2 + 34^2 = 63^2 39^2 + 12^2 + 4^2 = 41^2 39^2 + 18^2 + 2^2 = 43^2 40^2 + 16^2 + 13^2 = 45^2 40^2 + 19^2 + 8^2 = 45^2 40^2 + 24^2 + 15^2 = 49^2 40^2 + 32^2 + 25^2 = 57^2 40^2 + 40^2 + 7^2 = 57^2 程式附在後面, 很簡單的 perl #!/usr/bin/perl # # $n = 40; foreach $a(1..$n) { foreach $b(1..$a) { foreach $c(1..$b) { $d = sqrt($a * $a + $b * $b + $c * $c); if($d == int($d) and threef($a, $b, $c) == 1) { print "$a^2 + $b^2 + $c^2 = $d^2\n"; } } } } sub threef { my ($x, $y, $z) = @_; my $nd; $nd = twof($x, $y); $nd = twof($z, $nd); # print "$x/$y/$z = $nd\n"; return $nd; } sub twof { my ($i, $j) = @_; while(($i * $j) != 0) { if($i >= $j) { $i = $i - $j; } else { $j = $j - $i; } } return ($i + $j); } -- 家教經驗談 & 利用 TeX 編考卷與講義 http://dunst-kang.blogspot.com/ 要轉錄文章的人請注意三件事 1. 請註明出處, 2. 請保留簽名檔, 3. 請發個 mail 讓我知道 我的動態...(要簡單的註冊才能互動)歡迎一起來囉 bbs 型的微型網誌(plurk) http://plurk.com/dunst/invite -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.204.102.208

12/31 17:54, , 1F
推一個。
12/31 17:54, 1F

12/31 17:59, , 2F
推!
12/31 17:59, 2F

01/01 00:28, , 3F
推!
01/01 00:28, 3F

01/01 00:33, , 4F
新 年 快 樂 !!
01/01 00:33, 4F

01/01 00:35, , 5F
專業
01/01 00:35, 5F

01/01 01:40, , 6F
這個讚~
01/01 01:40, 6F

01/01 11:25, , 7F
專業!!!
01/01 11:25, 7F

01/01 18:16, , 8F
01/01 18:16, 8F

01/01 23:56, , 9F
推!
01/01 23:56, 9F

01/02 00:02, , 10F
01/02 00:02, 10F

01/02 02:24, , 11F
推!
01/02 02:24, 11F

01/07 16:48, , 12F
GOOD
01/07 16:48, 12F

01/08 21:00, , 13F
用心推~
01/08 21:00, 13F

01/17 04:17, , 14F
好棒阿
01/17 04:17, 14F
文章代碼(AID): #1GuL9esj (tutor)