Witam!
Zaczynam swoją przygodę z programowaniem i potrzebuję pomocy w zadaniu, ponieważ zaciąłem się w jednym punkcie i nie mam pomysłu jak inaczej podejść do problemu.
Treść brzmi następująco:
Dla zadanego zbioru liczb wypisz jego najmniej liczny podzbiór, którego suma jest większa niż suma pozostałych elementów tego zbioru.
Program wypisuje możliwe podzbiory, ale przy większej ilości wylosowanych elementów gubi niektóre z nich.
Będę wdzięczny jeśli ktoś postanowi mi pomóc.
import random
def randTab(n,tab):
for i in range(n):
tab.append(random.randint(0,10))
print(tab)
mainList=[]
sum1=[]
sum2=[]
temp=0
length=int(input("Podaj dlugosc tablicy do wylosowania "))
randTab(length,mainList)
mainList.sort(reverse=True)
sum2.extend(mainList)
for i in range(0,length-1):
sum1.append(mainList[i])
sum2[i]=0
if(sum(sum1)>sum(sum2)):
print(sum1)
break
for j in range(i+1,length):
temp=sum1[i]
sum1[i]=sum2[j]
sum2[j]=temp
if(sum(sum1)>sum(sum2)):
print(sum1)