logowanie

matematyka » forum » forum zadaniowe - zadania różne » zadanie

Inne, zadanie nr 9

ostatnie wiadomości  |  regulamin  |  latex

AutorZadanie / Rozwiązanie

crazygardener
postów: 1
2010-12-30 22:10:02

Witam sympatyków matematyki.
Od kilku dni męczy mnie pewien problem matematyczny:
Jak ze zbioru przypadkowych liczb wybrać takie, które po zsumowaniu ze sobą dadzą określony wynik. To znaczy, że do oczekiwanego wyniku trzeba dopasować sumę odpowiednich liczb.

Przykład:

Zbiór liczb: (5,12,18,7,1,8,21,10,3)
oczekiwany wynik: 15
Otrzymamy go sumując ze sobą liczby:
(5,10), (12,3), (7,8), (5,7,3)

W tym przykładzie łatwo to zrobić wzrokowo. A ja chciałbym wiedzieć, jak to zrobić matematycznie (np. w Excelu) z bardziej skomplikowanymi liczbami większego zbioru.


Z góry dziękuję za rzetelną pomoc.


Mariusz Śliwiński
postów: 489
2011-03-11 20:35:38

To jest bardziej problem algorytmiczny.
W exelu nie masz możliwości przeszukiwania liczb w pętli.

Do rozwiązania tego problemu należy użyć języka programowania wysokiego poziomu (np C++).

Napisz jak liczne mają być to zbiory oraz jakiej wielkości liczby mają być elementami zbioru.
W miarę możliwości napiszę taki skrypt i udostępnię źródło oraz program do wyznaczania takich podzbiorów.



zodiac
postów: 31
2011-03-12 20:25:45

lista kroków które należałoby wykonać będzie wyglądać mniej więcej tak (pisane na szybko, więc pewnie to nie jest najlepsze rozwiązanie):

- posortowanie zbioru
wynik:
1,3,5,7,8,10,12,18,21

odrzucenie liczb większych od oczekiwanego wyniku:
1,3,5,7,8,10,12

teraz wyszukujemy sumy zaczynając od końca, bierzemy więc liczbę 12
brakuje nam 15-12=3, szukamy zatem liczb mniejszych bądź równych 3
znajdujemy liczbę 3
(12,3)
szukamy dalej liczb które dają sumę 3 - nie ma takich

teraz bierzemy kolejną największą liczbę - 10
15-10=5
szukamy wiec liczb z pośród 1,3,5
znajdujemy 5
(10,5)

kolejna liczba - 8
15-8=7
szukamy liczb które dają wynik 7 itd


gdybym miał napisać program, to posłużyłbym się rekurencją ;)


edit:
teraz dopiero zobaczyłem datę założenia tematu: 2010-12-30, sorry za spóźnienie;)

Wiadomość była modyfikowana 2011-03-12 20:27:10 przez zodiac
strony: 1

Prawo do pisania przysługuje tylko zalogowanym użytkownikom. Zaloguj się lub zarejestruj





© 2019 Mariusz Śliwiński      o serwisie | kontakt   drukuj