Giúp đỡ về giải thuật, có hậu tạ.

from itertools import combinations

def sum_of_combination(numbers):
combination_sums = []
for r in range(1, len(numbers) + 1):
for combo in combinations(numbers, r):
combination_sums.append(sum(combo))
return combination_sums

# Example usage
numbers = [1, 2, 3]
combination_sums = sum_of_combination(numbers)
print("Sums of possible combinations:", combination_sums)
Này đúng ko thằng thớt.
 
from itertools import combinations

def sum_of_combinations_with_elements(numbers):
combination_info = []
for r in range(1, len(numbers) + 1):
for combo in combinations(numbers, r):
combo_sum = sum(combo)
combination_info.append((combo, combo_sum))
return combination_info

# Example usage
numbers = [1, 2, 3]
combination_info = sum_of_combinations_with_elements(numbers)

for combo, combo_sum in combination_info:
print("Combination:", combo, "Sum:", combo_sum)

In thêm từng combo :vozvn (22):
 
Mà khoan, đéo đúng lắm, ví dụ a = 13, tức a = 1 + 3 + 9 thì lại k có trong tệp kết quả. Ko dc ko dc, thiếu chỗ nào rồi
Chắc con AI của khoai nó bị ngu đới m tìm con khác xem. Tính cả 1+3=4 cũng fail r. Chắc đề bài phải thêm vô từ 2 số trở lên mà khoai ko nói còn trong vd là lấy 3 số hạng.
sắp xếp tăng dần đống số đấy. Với khoảng cách là 1 lấy số đầu tiên cộng với số liền kề lặp lại cho đến hết, rồi với khoảng cách là 2 lấy số đầu tiên cộng với 2 số liền kề cho đến hết. Lặp đi lặp lại bước 1 cho đến khi khoảng cách là tất cả các số.
 
Chào mấy tml, trong đây chắc cũng có nhiều cao nhân về thuật toán nên tao mạn phép xin nhờ giúp đỡ tao một giải thuật khá đơn giản nhưng tao dốt quá chưa nghĩ ra dc.

Có một tệp gồm các số tự nhiên bất kỳ không trùng nhau. Ví dụ: [1,3,9,14,29,33,37,48,49,51]

Tao muốn tìm a, biết a là tổng của các số thuộc tệp trên (không phải tất cả mà là một vài số trong tệp đó thôi). Ví dụ a = 158 = 51 + 48 + 33 + 14 + 9 + 3

Vậy tao phải chạy thuật toán loại trừ thế nào để ra được tất cả các kết quả có thể của a?

Tml nào giúp tao với, xin hậu tạ ly cafe :(
xác định trước vị trí trong list thử coi.
định nghĩa list = B
a = pos1(B) + pos2(B) + pos3(B)...
position: vị trí phần tử trong list B.
 

Có thể bạn quan tâm

Top