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

Program do zagospodarowania przestrzeni na wałku

Object Storage Arubacloud
0 głosów
181 wizyt
pytanie zadane 24 lipca 2018 w C i C++ przez GallAnonim Nowicjusz (120 p.)

Witam. Programowania lizałem jedynie trochę w gimnazjum, ale to dawno temu i .. nie prawda :D. Oglądałem pobieżnie filmiki P. Mirosława na YT, jednak one nie są w stanie mi pomóc - bo o ile rozumiem o co w nich chodzi to z moją wiedzą nie jestem w stanie przełożył tego na swój problem. Do rzeczy. Codziennie muszę ręcznie liczyć pewną rzecz w pracy, na którą tracę czas, bo robię to metodą prób i błędów ( z czasem idzie to sprawniej, ale i tak to syzyfowa praca ). Najłatwiej będzie mi to opisać łopatologicznie, co będzie poniżej, a następnie postaram się niejako rozpisać to jako algorytm ( co pamiętam, że Pani od programowania mówiła, że zawsze trzeba zrobić przed przystąpieniem do pisania właściwego programu :D ),  więc do rzeczy.

Mam powierzchnie ( w dalszej części nazywaną "wałkiem" ) o długości 900 cm. Dostaję wymiary ( w dalszej części nazywane "kołami" ) które na tej powierzchni muszę rozplanować tak aby wykorzystać jak tę powierzchnie najlepiej. Czyli na wałek zagospodarować koła. Mam nadzieje, że w miarę rozumiecie. Koła mają różne wymiary oraz na dane zamówienie przypada różna liczba tych kół. Przykładowo:

  • Koło o wymiarach 150 w ilości 4
  • Koło o wymiarach 50 w ilości 4
  • Koło o wymiarach 100 w ilości 1

Jest to stworzony przykład specjalnie pod to, bo w głowię można policzyć, że koła idealnie zmieszczą się na wałku, mianowicie:

150x4 + 50x4 + 100x1 = 900

Zazwyczaj jednak zdarza się tak, że mam kilka, nawet do 10 rozmiarów kół w różnych ilościach. Sprawa z powyższego przykładu kompletnie by się skomplikowała gdyby było przykładowo 10 kół "100". Wtedy muszę już kombinować, i robić dwa wałki ( czego i z programem nie uniknę, ale wtedy on zrobi to za mnie - nie będę kombinował ). 

Mam nadzieje, że ktoś zrozumie o co mi chodzi. Teraz ten algorytm, który ja widzę tak.

  1. Użytkownik podaje długość wałka.
  2. Użytkownik podaje wymiary oraz ilość kół
  3. Program dodaje do siebie wymiary kół, biorąc pod uwagę ich ilość 

ad.3 Tutaj znów posłużę się przykładem, bo tak najłatwiej. Wałek ma 900. Ja mam dwa wymiary kół: 500, których potrzeba mi 10, koło 40 w ilości 100 oraz, koło o wymiarze 450, których potrzeba mi 4. Tutaj też prosty przykład, aby to rozumieć. No najłatwiej zrobić dwa wałki, w wymiarach 500 oraz 40, dlaczego? 

500x1 + 40x10 = 900 - idealnie, a do tego ta rzecz, którą mi najtrudniej wytłumaczyć. Ilość kół pasuje idealnie. Dlaczego? Zrobię 10 takich wałków i oba rozmaiary będą gotowe. Nic więcej nic mniej. 10 wałków na każdym jeden rozmiar 500, da mi 10 kół w rozmiarze 500 oraz obok tych "pięćsetek" na każdym z tych 10 wałków będzie 10 kół rozmiaru 40 co daje nam razem 100 kół. No a drugi wałek wiadomo 2x450. Czy ktokolwiek mnie zrozumiał ? Bo prawdę mówiąc, mimo tego, że nie dużo wiem o programowaniu, jestem w stanie z powodu tej męczarni w pracy ogarnąć to, gdyby tylko ktoś mi powiedział, że rozumie o co mi chodzi, i jest w jakimś stopniu chociaż pomóc, poprowadzić. Absolutnie od nikogo nie wymagam linijki kodu. 

 

 

komentarz 24 lipca 2018 przez RafalS VIP (122,820 p.)
Akurat teraz lece spać, ale jutro z chęcią jeszcze usiądę. O ile nikt tego nie rozwiąże do jutra wieczór :p
komentarz 24 lipca 2018 przez GallAnonim Nowicjusz (120 p.)
Ok, jutro postaram się pokazać bardziej skomplikowany przykład aby dało się zrozumieć problem. W takim razie do jutra!
komentarz 25 lipca 2018 przez mokrowski Mędrzec (155,460 p.)
To jest typowy problem plecakowy: https://pl.wikipedia.org/wiki/Problem_plecakowy
komentarz 25 lipca 2018 przez RafalS VIP (122,820 p.)
Potwierdzam, problem plecakowy. Implementacja zachłanna jest bardzo prosta, programowanie dynamiczne troszke trudniejsze, ale jako, że jest to tak popularny problem to spokojnie znajdziesz na necie gotowe implementacje :P
komentarz 31 lipca 2018 przez GallAnonim Nowicjusz (120 p.)

Witam. Troche poczytałem, ogólny problem rozumiem, ale szczerze mówiąc jest troche ciężko. 

Czy swój kod moge opierać na tym ?? 

http://algorytmika.wikidot.com/problem-plecakowy

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

+1 głos
4 odpowiedzi 6,199 wizyt
pytanie zadane 9 lipca 2018 w C# przez daniel500013 Użytkownik (850 p.)
0 głosów
3 odpowiedzi 264 wizyt

92,615 zapytań

141,465 odpowiedzi

319,782 komentarzy

61,997 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!

...