
講義でわからないのですが、以下の問をPythonを用いて答えを求めるコードを書いてください。
ピタゴラスな三角形
三辺の長さが3,4,5である三角形は直角三角形です。これは「ピタゴラスの定理」から示されます。
【ピタゴラスの定理】 直角三角形について、直角をはさむ2辺の長さがaとbで斜辺の長さがcであるとき a2 + b2 = c2 が成り立つ。
つまり、32 + 42 = 52( = 25)が成立するので直角三角形といえるのです。
三辺の長さが整数で面積が6000以下である直角三角形は何種類あるかを求めてください。
※合同なもの(例えば“3,4,5”と“5,4,3”)は区別せず1種類として数えます。
A 回答 (8件)
- 最新から表示
- 回答順に表示

No.8
- 回答日時:
今度はインデントが抜けてしまいました・
import math
list_abc=[]
for b in range(1,12001):
for a in range(1,b+1):
if a*b > 12000: break
c = math.sqrt(a**2+b**2)
if c == int(c): list_abc.append((a,b,int(c)))
print("The number of combinations = %d" % len(list_abc))

No.7
- 回答日時:
No. 6 の回答、間違えました!正解は
import math
list_abc=[]
for b in range(1,12001):
for a in range(1,b+1):
if a*b > 12000: break
c = math.sqrt(a**2+b**2)
if c == int(c): list_abc.append((a,b,int(c)))
print("The number of combinations = %d" % len(list_abc))

No.6
- 回答日時:
import math
list_abc=[]
for b in range(1,12001):
for a in range(1,b+1):
c_square = a**2+b**2
if c_square > 12000: break
c = math.sqrt(c_square)
if c == int(c): list_abc.append((a,b,int(c)))
print("The number of combinations = %d" % len(list_abc))
おかしいなぁ。58個しか答えがないです。
No.5
- 回答日時:
No4.補足。
>c = math.floor(math.sqrt(cs) + 0.001)
>if c**2 == cs:
は平方根の誤差を考慮したものですが、平方根は IEEE754 の
基本演算なので、この配慮は不要ですね。
ころっと忘れてました。
if int(math.sqrt(cs))**2 == cs:
で十分。
No.4
- 回答日時:
import math
a = 1
list = []
while a**2/2 < 6000:
b = a + 1
while a*b/2 <= 6000:
cs = a**2 + b**2
c = math.floor(math.sqrt(cs) + 0.001)
if c**2 == cs:
list.append((a, b, c))
print(a, b, c)
b += 1
a += 1
print(list)
print(len(list))
わかりやすさを心がけてみました(^^;
インデントは全角スペースに置き換えてあるのでご注意を。
121個
No.3
- 回答日時:
あ、ゴメン、判定間違ってるわ。
# ここから
#!/usr/bin/env python3
import math, itertools
def foo(n):
max_area = 2 * n
return sum([[[a, b, int(math.sqrt(a**2 + b**2))] \
for b in range(1, math.ceil(max_area / a)) \
if math.sqrt(a**2 + b**2).is_integer()] \
for a in range(1, max_area + 1)], [])
def bar(lst):
newLst = []
while lst != []:
elm = lst[0]
lst = [i for i in lst if not tuple(i) in itertools.permutations(elm)]
newLst += [elm]
return newLst
if __name__ == '__main__':
print(len(bar(foo(6000))))

No.2
- 回答日時:
001: 6.0 [ 3, 4, 5]
002: 24.0 [ 6, 8, 10]
003: 30.0 [ 5, 12, 13]
(snip)
120:5880.0 [ 70,168,182]
121:6000.0 [ 80,150,170]
No.1
- 回答日時:
#!/usr/bin/env python3
import math
def foo(n):
max_area = 2 * n
return sum([[[a, b, int(math.sqrt(a**2 + b**2))] \
for b in range(1, math.ceil(max_area / a)) \
if math.sqrt(a**2 + b**2).is_integer()] \
for a in range(1, max_area + 1)], [])
def bar(lst):
newLst = []
while lst != []:
elm = lst[0]
lst = [i for i in lst if sum(elm) != sum(i)]
newLst += [elm]
return newLst
if __name__ == '__main__':
print(len(bar(foo(6000))))

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 三角比の相互関係「sinA^2+cosA^2=1」が直角でなくても成り立つ理由について。 これは、三 8 2022/03/31 09:22
- 数学 複素数平面についての問題です。 2点α、βが定められており、それらともう1点γと結ぶ三角形が直角二等 6 2023/06/30 09:47
- 数学 点Oを中心とし、半径が5である円Oがある。この円周上に2点A、B をAB=6となるようにとる。また、 5 2023/08/16 23:32
- 数学 チャート式数学(黄)i.aの問158について 3 2022/10/20 12:10
- 哲学 ピタゴラスの定理の証明を形相論理で求める 3 2023/06/24 12:59
- 数学 直角二等辺三角形についてです。 直角二等辺三角形ABCを(角A=90度)頂角Aから底辺BCに垂直に線 3 2023/06/05 23:05
- 数学 場合の数、確率 29 導入問題 ( 円周上の鋭角三角形) 4 2023/07/06 18:00
- 数学 【数学の図形の名称と面積の計算方法】正三角形と扇形があります。正三角形の2辺を伸ばす 9 2023/02/06 23:30
- 数学 『直角三角形であれば、辺の比が3:4:5である』ということは成り立ちますか? 10 2022/08/27 04:16
- 数学 三角形ABCの辺BCを4 : 3に内分する点をTとし、点Tを接点として辺BCに接する円が点Aで直線A 3 2023/02/12 21:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
画像生成AIのプロンプトの作り...
-
Geminiフォーム 画像生成で 人...
-
vba クリップボードクリアにつ...
-
数学、プログラミング、物理、...
-
pip --versionがエラーになる
-
pythonの実行に関する質問
-
CSVファイルの複数行削除
-
Python... 環境設定 初心者です...
-
VBAでパワーシェルを実行したい...
-
OS入ってる機器のソフト・アプ...
-
趣味がプログラミングだと言っ...
-
PythonのTkinter詳しい方へ。画...
-
pythonについて(初心者です)
-
パイソンのソースコードをChatG...
-
プログラミング言語のバージョ...
-
COPYコマンドで、最後に1文字...
-
プログラミングに興味があるの...
-
Pythonのエラーメッセージをコ...
-
ネットワークフォルダの中身を...
-
アセンブリ言語について。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
c++ cmathとmath.h
-
三辺の長さから角度を求めたい...
-
FLASHでランダムでURLを表示さ...
-
プログラム開始から 2秒毎に ...
-
ActionScript3.0でのカウントダ...
-
【ランダム関数】0と1を返すだ...
-
FlashLite1.1で日数カウントアップ
-
=FREQUENCY(範囲,{59,69,74}) ...
-
python: 直角三角形の種類を求...
-
ミリ秒までカウントできるタイマー
-
エクセル マクロ(A1:A10)までの...
-
時計のカウントダウンする方法
-
エラー(型が一致しません。)...
-
VB6でユーザー定義型がNothing...
-
配列の要素番号を取得するには?
-
LRESULTとHRESULT
-
#define 文
-
TextChangeイベントが発生しない
-
VB.NET の配列の要素数
-
重複しない乱数の生成
おすすめ情報