بخشی از مجموعه

چندین نمونه کد

~2 دقیقه مطالعه • بروزرسانی ۱۷ مهر ۱۴۰۴

شرح برنامه

این برنامه تمام ترکیب‌های ممکن از اعداد ۱ تا ۱۰ را بررسی می‌کند تا مشخص شود کدام‌یک می‌توانند مثلث متساوی‌الساقین تشکیل دهند.
در مثلث متساوی‌الساقین، دو ضلع برابر هستند و شرط نامساوی مثلثی باید برقرار باشد:
برای سه ضلع 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)  
...

توضیح مراحل:

- تمام ترکیب‌های سه‌تایی با تکرار از اعداد ۱ تا ۱۰ تولید می‌شوند
- هر ترکیب ابتدا با شرط مثلث بودن بررسی می‌شود
- سپس بررسی می‌شود که آیا دو ضلع برابر و یکی متفاوت است (متساوی‌الساقین)
- ترکیب‌های معتبر در خروجی نمایش داده می‌شوند


نوشته و پژوهش شده توسط دکتر شاهین صیامی