این برنامه مجموعهای از اعداد را دریافت کرده و تمام ترکیبهای سهتایی ممکن را بررسی میکند.
هدف این است که مشخص شود آیا هر سه عدد میتوانند اضلاع یک مثلث باشند یا نه.
برای این منظور، از شرط نامساوی مثلثی استفاده میکنیم:
برای هر سه عدد a, b, c باید داشته باشیم:
\[
a + b > c,\quad a + c > b,\quad b + c > a
\]
from itertools import combinations
def is_valid_triangle(a, b, c):
return a + b > c and a + c > b and b + c > a
def find_valid_sets(numbers):
valid = []
for combo in combinations(numbers, 3):
if is_valid_triangle(*combo):
valid.append(combo)
return valid
# اجرای برنامه
nums = list(map(int, input("اعداد را با فاصله وارد کنید: ").split()))
valid_sets = find_valid_sets(nums)
print(f"تعداد مجموعههای معتبر: {len(valid_sets)}")
for s in valid_sets:
print(f"مجموعه معتبر: {s}")
اعداد را با فاصله وارد کنید: 3 4 5 6 10
تعداد مجموعههای معتبر: 4
مجموعه معتبر: (3, 4, 5)
مجموعه معتبر: (3, 5, 6)
مجموعه معتبر: (4, 5, 6)
مجموعه معتبر: (5, 6, 10)
- ابتدا تمام ترکیبهای سهتایی از لیست اعداد تولید میشود
- هر ترکیب با شرط نامساوی مثلثی بررسی میشود
- ترکیبهایی که معتبر باشند در خروجی نمایش داده میشوند