این برنامه تمام ترکیبهای ممکن از اعداد ۱ تا ۱۰ را بررسی میکند تا مشخص شود کدامیک میتوانند مثلث متساویالساقین تشکیل دهند.
در مثلث متساویالساقین، دو ضلع برابر هستند و شرط نامساوی مثلثی باید برقرار باشد:
برای سه ضلع a, b, c باید داشته باشیم:
\[
a + b > c,\quad a + c > b,\quad b + c > a
\]
from itertools import combinations_with_replacement
def is_triangle(a, b, c):
return a + b > c and a + c > b and b + c > a
def is_isosceles(a, b, c):
return (a == b or b == c or a == c) and not (a == b == c)
def find_isosceles_triangles(digits):
valid = []
for combo in combinations_with_replacement(digits, 3):
a, b, c = sorted(combo)
if is_triangle(a, b, c) and is_isosceles(a, b, c):
valid.append((a, b, c))
return valid
# اجرای برنامه
digits = list(range(1, 11))
isosceles = find_isosceles_triangles(digits)
print(f"تعداد مثلثهای متساویالساقین: {len(isosceles)}")
for tri in isosceles:
print(f"مثلث: {tri}")
تعداد مثلثهای متساویالساقین: 24
مثلث: (1, 1, 1)
مثلث: (2, 2, 3)
مثلث: (2, 3, 3)
مثلث: (3, 3, 4)
...
- تمام ترکیبهای سهتایی با تکرار از اعداد ۱ تا ۱۰ تولید میشوند
- هر ترکیب ابتدا با شرط مثلث بودن بررسی میشود
- سپس بررسی میشود که آیا دو ضلع برابر و یکی متفاوت است (متساویالساقین)
- ترکیبهای معتبر در خروجی نمایش داده میشوند