• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Algorytm, który sprawdza wszystkie możliwości dodawania

Object Storage Arubacloud
0 głosów
843 wizyt
pytanie zadane 20 października 2017 w C i C++ przez Scypyon Gaduła (3,450 p.)

Zadanie: Mamy liczby załóżmy póki  A,B,C,D,E(wektorowo) Liczba =[x][y]

A = [3][7]

B = [4][6]

C = [6][9]

D = [1][0]

E = [2][2]

Pytanie: Czy jest jakiś sposób ,aby zapisać w pamięci podręcznej wszystkie możliwe kombinacje dodawania każdego x i każdego y? Ale nie tylko dla 5 liczb ale i dla np. 1000. Czyli:

x=  3 + 4 + 6 + 1 + 2 =16    ALE I TEŻ MIESZANIE     x= 3+6+2=11

x=3+4+6+1=14                                                            x=3+4+1=8

x=3+4+6=13                                                               itd...

x=3+4=7

x=3

 

*To samo w przypadku y

 

Nie wiem czy dobrze przekazałem o co mi chodzi, w każdym razie będę wdzięczny za wszelką pomoc.

1 odpowiedź

+1 głos
odpowiedź 20 października 2017 przez Patrycjerz Mędrzec (192,320 p.)
wybrane 20 października 2017 przez Scypyon
 
Najlepsza

Wygląda to na proste wyznaczenie wszystkich kombinacji bez powtórzeń i zsumowanie elementów każdej kombinacji z osobna.

Osobiście wpadłem na pomysł z maską liczb wchodzących do sumowania w postaci liczby dwójkowej z ilością cyfr taką jak ilość x lub y.

Przykład

Dla x:
Maska: 00001 Suma: 3
Maska: 00010 Suma: 4
Maska: 00011 Suma: 3 + 4 = 7
Maska: 00100 Suma: 6
itd...

To samo dla y.

komentarz 20 października 2017 przez Patrycjerz Mędrzec (192,320 p.)
Obliczyłeś te wszystkie sumy dla miliona x i y? A jak wyglądał czas wykonywania programu oraz jego zużycie pamięci?
komentarz 20 października 2017 przez Scypyon Gaduła (3,450 p.)
no właśnie tu jest problem, póki co mam rozwiązanie z maską i nie wiem czy wrzucać do sprawdzarki, pogadam z profesorem w poniedziałek i zadecyduje, póki co daje naj :) dzięki bardzo
komentarz 20 października 2017 przez Scypyon Gaduła (3,450 p.)
swoją drogą jestem ciekaw jak to sprawdzarka ogarnie :)
komentarz 20 października 2017 przez Patrycjerz Mędrzec (192,320 p.)

Wydaję mi się, że dla takiej ilości kombinacji nie wystarczy ci ani miejsca w RAM-ie, ani na dysku twardym, ani czasu na oczekiwanie na wynik, ale mogę się mylić. Czekam na rezultaty smiley

komentarz 20 października 2017 przez Scypyon Gaduła (3,450 p.)
w takim razie w poniedziałek o 22 dam znać :) Ja tych zadań nie układałem , więc mam związane ręce :) Pewnie jest inny sposób na zrobienie tego, jak cie to interesuje to wpisz w googla "olimpiada informatyczna" i zadanie Pionek :) Pozdrawiam i jeszcze raz dziękuje :)

Podobne pytania

0 głosów
1 odpowiedź 167 wizyt
0 głosów
2 odpowiedzi 10,470 wizyt
pytanie zadane 19 grudnia 2016 w C i C++ przez niezalogowany
0 głosów
0 odpowiedzi 259 wizyt

92,579 zapytań

141,427 odpowiedzi

319,654 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...