![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 50 Pomógł: 1 Dołączył: 29.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam , mam taki problem . Jest tabela z liczbami z dwoma miejscami po przecinku . I teraz mam napisać skrypt który wyłowi liczby z tej tablicy których suma da daną liczbę , lub stwierdzić iż nie ma takiej kombinacji .
Jak zabrać się do takiego skryptu ? Jakieś pomysły podpowiedzi ? Przykład:
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Tworzysz wszelkie mozliwe kombinacje sum i sprawdzasz ktora daje to czego szukasz
Oczywiscie mozesz to zoptymalizowac, np. gdy dana suma jest juz wieksza, to nie dokladasz kolejnych kombinacji do niej. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 50 Pomógł: 1 Dołączył: 29.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
I nadal mam pustkę w głowie jak to rozpisać w php ? Zwłaszcza, że może to być tylko część liczb z tablicy .
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Nie bardzo rozumiem. Nie wiesz jak zrobic wszystkie mozliwe kombinacje ze zbioru?
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
-------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
Śmierdzi mi tu Amino, czyż nie ?
![]() |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
1. Na początek przemnóż sobie wszystkie liczby przez 100 by operować na liczbach całkowitych - ewentualnie przy wyświetlaniu podziel ponownie wszystko przez 100. Porównywanie liczb zmiennoprzecinkowych jest problematyczne - https://www.google.pl/search?q=what+every+p...me&ie=UTF-8
2. http://stackoverflow.com/questions/4632322...ach-a-given-sum |
|
|
![]()
Post
#8
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
@Crozin niestety autor tematu nie oczekuje algorytmu tylko gotowego kodu w php.
Nawet jak dostal gotowce od markonix to ma problem bo tam sa teksty a nie liczby. Tak wiec albo dajcie gotowca albo oszczedzcie sobie czasu na postowanie ![]() @Pyton rozwin watek ![]() @iceman to jest bardzo mile http://www.php.net/manual/en/function.shuffle.php#90615 zamiast tekstow wstaw liczby i masz rozwiazanie... no procz sum. Ale kurka, cos moglbys zrobic samodzielnie -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 872 Pomógł: 94 Dołączył: 31.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem czy o to chodzi, tak bardzo ale to bardzo na szybko:
|
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 8 068 Pomógł: 1414 Dołączył: 26.10.2005 Ostrzeżenie: (0%) ![]() ![]() |
@nospor chodziło o to że Amino jakiś czas temu w zupkach dawał kwoty. I jak się uzbierało np. 100 to można było wymienić na kasę
![]() ![]() |
|
|
![]()
Post
#11
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
@lukaskolista przeciez twoje rozwiazanie sumuje tylko dwie liczby
@Pyton ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 50 Pomógł: 1 Dołączył: 29.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
Nie do Amino ,ale księgowa mnie meczy odnośnie takich dupereli.
Napisłem tyle ,ale tylko nei wiem czy włąściwie no i nie wiem jak wyświetlić użyte liczby tu mi nie znajduje wyniku 2000 .
|
|
|
![]()
Post
#13
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Dostales gotowe kody, szczegolnie fajny ten co ci podalem jako ostatni.
To co napisales ma sie srednio do twojego problemu -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Weź mój przykład, zamiast tekstu rób tablice, będziesz miał tablicę wszystkich możliwych kombinacji bez powtórzeń, potem tylko foreach + break w momencie znalezienia pierwszej kombinacji, która spełnia warunek tej sumy.
Jeżeli foreach przeleci bez break oznacza to brak. -------------------- |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 50 Pomógł: 1 Dołączył: 29.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
Cosik mi nie wychodzi , kurka ... wyniki , są ale jakby sklejone do siebie
|
|
|
![]()
Post
#16
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Wlasnie sprawdzilem przyklad do ktorego cie odeslalem. Dziala bez zadnych przerobek. Tylko skopiowac i wkleic do siebie. Widze lubisz sobie na sile utrudniac zycie
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#17
|
|
![]() Grupa: Zarejestrowani Postów: 50 Pomógł: 1 Dołączył: 29.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
Dla 5 liczb działa , powyżej nie wywala już nic , gdzie tkwi problem ?
|
|
|
![]()
Post
#18
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
MI tam dziala do 12. Potem sie wywala spowodu pamieci. Zwieksz pamiec
![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#19
|
|
![]() Grupa: Zarejestrowani Postów: 50 Pomógł: 1 Dołączył: 29.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
ini_set("memory_limit",-1); wstawiłem realnie przy 128 GB pamięci , ile liczb mogę brać pod uwagę ? rozumiem, że 1000 liczb to 1000 do potęgi 1000 , czyli tragicznie to będzie długo się robić i raczej zapcha pamięć .
|
|
|
![]()
Post
#20
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Dlatego w pierwszym poscie wspomnialem o optymalizacji takich skryptow, by nie szukaly dalej gdy suma zostanie osiagnieta. To oszczedzi sporo czasu i pamieci.
Crozin w swoim poscie zapodal ciekawego linka. Niestety nie ma kodu w php. Trzeba przerobic. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#21
|
|
![]() Grupa: Zarejestrowani Postów: 50 Pomógł: 1 Dołączył: 29.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
No w sumie tworzy się sporo tablic zbędnych , ale to nie realne przy 10 000 licz gdzie może się okazać ,że nie ma właściwej konfiguracji , czyli skrypt przeleci po wszystkim , jedynie można by określić wstępnie minimalną i maksymalną liczbę liczb jakie muszą być w tablicy
|
|
|
![]()
Post
#22
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat że nie ma właściwej konfiguracji Nie ze nie ma wlasciwej, ale gdy wszystkie sumy sa ponizej zakladanej. Drobna roznica. Tylko w tym przypadku, gdy wszystkie sumy sa mniejsze to skrypt przeleci wszystkie kombinacje
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 07:54 |