![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 184 Pomógł: 0 Dołączył: 11.01.2010 Skąd: Nowa Dęba Ostrzeżenie: (0%) ![]() ![]() |
Witajcie, nie wiem jak zatytułować mój temat. Załóżmy, że mamy klocki z wartościami:
1 / 1,25 / 1,5 / 2 / 2,5 / 3 / 5 / 10 / 15 / 20 Chcę aby skrypt dobrał mi jak najmniejszą ilość klocków aby wyszła wpisana wartość. Przykład: podaje wartość 18 Chciałbym aby skrypt dobrał: 15 + 3 Błędne: 3 + 5 + 10 Klocki nie mogą się powtarzać: 5 + 5 + 3 Proszę o jakieś wskazówki, nie wiem jak się z to zabrać ![]() -------------------- zpodziemia.pl - największa baza dobrych nielegali w POLSCE!
|
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 428 Pomógł: 77 Dołączył: 10.07.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Tworzysz sobie wszystkie możliwe kombinacje liczb, które w efekcie utworzą sumę wymaganą przez Ciebie (bądź sumę która będzie jej najbliższa), do tego zliczasz ilość składników i zwracasz to, co wymagało ich najmniej
![]() -------------------- Cytat There is a Bundle for that Lukas Kahwe Smith - October 31th, 2014 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 6 806 Pomógł: 1828 Dołączył: 11.03.2014 Ostrzeżenie: (0%) ![]() ![]() |
A może tak:
redukujesz tablicę składników do tych mniejszych lub równych szukanej, sortujesz malejąco, dzielisz przez największą i sprawdzasz resztę, jeśli reszta jest większa od 0, to zapisujesz składnik na liście z boku, a dla reszty wykonujesz operację analogiczną jak dla całości. -------------------- |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 99 Pomógł: 5 Dołączył: 18.03.2015 Ostrzeżenie: (0%) ![]() ![]() |
Jeśli to do zupek amino to jest do tego apka na androida https://play.google.com/store/apps/details?...akalkulator.app
oraz kalkulator do pobrania: http://michalmleczko.waw.pl/kalkulator-wyg...ii-kasa-romana/ Ten post edytował lustfingers 22.09.2016, 04:39:23 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 46 Pomógł: 0 Dołączył: 20.02.2015 Ostrzeżenie: (0%) ![]() ![]() |
ja bym na początek spróbował posortować tablice malejąco
wrzucił do foreach'a coś na zasadzie $value <= $ szukana |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Łopatologiczne
![]()
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 184 Pomógł: 0 Dołączył: 11.01.2010 Skąd: Nowa Dęba Ostrzeżenie: (0%) ![]() ![]() |
Nie działa coś ten kod. Nie ukrywam nie poradzę sobie z tym nie mam na tyle wiedzy
![]() -------------------- zpodziemia.pl - największa baza dobrych nielegali w POLSCE!
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
A u mnie działa:
Kod array(5) {
[1]=> string(4) "3,15" [2]=> string(6) "3,5,10" [5]=> string(6) "2.5,15" [6]=> string(6) "1,2,15" [7]=> string(11) "1.25,1.5,15" } |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 184 Pomógł: 0 Dołączył: 11.01.2010 Skąd: Nowa Dęba Ostrzeżenie: (0%) ![]() ![]() |
Niby tak ale powinno zwrócić tylko 3+15 (najlepszą opcję). Poza tym niektóre sumy nie dają 18.
-------------------- zpodziemia.pl - największa baza dobrych nielegali w POLSCE!
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Spoko, zmodyfikuj go sobie o przefiltrowanie wyników i będziesz miał gotowe
![]() |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 279 Pomógł: 42 Dołączył: 10.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
Do użycia funkcja findComponents(), jeżeli możliwa jest kombinacja unikalnych składników zwróci ją lub false w przypadku braku takiej kombinacji. Choć wydaje mi się że skrypt ma wadę bo leci od największych składników przez co nie wszystkie kombinacje są możliwe :/
edit: jednak nie działa w pełni poprawnie, wysypuje się na floatach ale może Cię to na coś naprowadzi, tak na prawdę to potrzebny tu jest jedynie sensowny algorytm, przełożenie go na kod to już formalność.
Ten post edytował Puszy 30.09.2016, 15:17:09 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 05:29 |