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

- 画像を添付する (ファイルサイズ:10MB以内、ファイル形式:JPG/GIF/PNG)
- 今の自分の気分スタンプを選ぼう!
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で質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
先着1,000名様に1,000円分もらえる!
教えて!gooから感謝をこめて電子書籍1,000円分プレゼント
-
python: 最大積載量5000kgのトラックに700個の荷物を積むには何台のトラックが必要か。
その他(プログラミング・Web制作)
-
添付の全ての関数わかりません。教えて下さい。 半角、全角混合してるデ-タを統一させたいです。 D列→
Visual Basic(VBA)
-
模写コーディングでソースの表示でいきなりコードが折り返しの表示になってしまいました。
その他(プログラミング・Web制作)
-
4
プログラミング、アルゴリズムについて 次のa.b.cを埋めて流れ図を完成させなさい 分からないので教
その他(プログラミング・Web制作)
-
5
サブルーチンについて。
その他(プログラミング・Web制作)
-
6
VBSについて
その他(プログラミング・Web制作)
-
7
htmlで顧客検索システムを作っているのですが、プログラムでどう書いたらいいのか分からないところがあ
HTML・CSS
-
8
正規表現
その他(プログラミング・Web制作)
-
9
プログラミング言語、Pythonなどについて
その他(プログラミング・Web制作)
-
10
pythonの計算
その他(プログラミング・Web制作)
-
11
プログラミングでの質問です。 独学でプログラミングをしており、壁にぶつかりました。 Sublime
その他(プログラミング・Web制作)
-
12
データの元はどこにあるのでしょうか。
Java
-
13
プログラミング言語について質問です。 一つのプログラミング言語を他の言語に変換することは可能でしょう
その他(プログラミング・Web制作)
-
14
整数のべき数のプログラムについて
C言語・C++・C#
-
15
シェルスクリプト [[ $number =~ ^-?[0-9]+$ ]] 数字の連続または先頭にマイ
その他(プログラミング・Web制作)
-
16
#pragma warning(disable: 4996) #include <stdio.h>/
C言語・C++・C#
-
17
苦しんでCを読んでchar型は文字列しか表せないとわかっていますが、 例えばchar str[] =
C言語・C++・C#
-
18
Excel2011で共同編集するには?
Excel(エクセル)
-
19
連想配列
Visual Basic(VBA)
-
20
EXCELで良い処理方法があれば教えて下さい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
人気Q&Aランキング
-
4
三角錐と四面体
-
5
1:2:√5?って直角三角形にな...
-
6
正八角形で・・・・
-
7
手の甲の三つの点のような刺青
-
8
中学マッチ棒
-
9
必要十分条件 ~相似~
-
10
直方体の切り口が直角三角形に...
-
11
合同と=の違い
-
12
台形の対角線の求め方
-
13
数学A 三角形の重心の問題について
-
14
不等辺三角形・・・
-
15
三角形の外接円とその中心(外心?)
-
16
数学I正弦定理の問題
-
17
内接三角形の面積
-
18
三角形の重心の問題です
-
19
小学生ができるレベルで、算数...
-
20
半径1の円に内接する正五角形の...
おすすめ情報
公式facebook
公式twitter