![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 84 Pomógł: 0 Dołączył: 6.01.2008 Skąd: Działoszyn Ostrzeżenie: (0%) ![]() ![]() |
witam, mam ciekawy problem, szukałem na forum ale nic nie moglem znaleźć (IMG:style_emoticons/default/sad.gif)
a więc tak: mam pewną ilość liczb w bazie danych np. 1346 1650 5645 3643 2346 7554 3457 765 skrypt ma za zadanie sumować pokolei liczby do momentu aż wynik wyniesie np. 1000 lub 2000 lub 3000 aż do 10000, gdy wynik będzie większy niż 10000 to wtedy zaczyna sumować liczy od początku tylko że od następnej liczby czyli jak mamy 1346+1650=2996 1346+1650+5645=8641 1346+1650+5645+3643=12284 i zaczyna od nowa ale już od liczby 1650 1650+5645=7295 itd... aż do momentu gdy suma licz będzie równa 1000 lub jego wielokrotności to wtedy zacznie znowu od następnej liczby ew. może też być suma każdej liczby z każdą napisałem coś w podobnego ale mój skrypt ma wiele wad
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) ![]() ![]() |
Wcale nie twierdzę, że w PHP magicznie pojawiła się wielowątkowość. Przyjrzyj się uważnie, jak autor chce realizować obliczenia:
mamy liczby a, b, c, d, e, f a a+b a+b+c a+b+c+d a+b+c+d+e a+b+c+d+e+f Jeśli w którymkolwiek miejscu osiągniemy wielokrotność 1000 lub przekroczymy 10 000, to zaczynamy ponownie: b b+c b+c+d b+c+d+e b+c+d+e+f Warunek ten sam, przeskakujemy dalej: c c+d c+d+e c+d+e+f itd. Autor nic nie wspomniał, że obliczenia muszą być realizowane dokładnie w takiej kolejności. Więcej, napisał, że sumy typu "b+d+f" mogą wystąpić EWENTUALNIE, a ponieważ dodatkowo oznaczył post jako "Pomógł", wnioskuję, że dobrze go zrozumiałem i postuluję, że można je realizować w taki sposób: Iteracja 1 (każdy wiersz oznacza pamiętaną sumę): a Iteracja 2: a+b b Iteracja 3: a+b+c b+c c Iteracja 4: a+b+c+d b+c+d c+d d itd. Jeśli podczas sumowania okaże się, że osiągnęliśmy wielokrotność 1000 lub przekroczyliśmy 10000, to taką sumę wywalamy z dalszych obliczeń. Przypuśćmy, że w iteracji 4 suma b+c+d dała nam 3000. Wtedy wyświetlamy "Wygrałeś" i usuwamy ją, dzięki czemu w iteracji 5 mamy: a+b+c+d+e c+d+e d+e e I to właśnie robi zaproponowany przeze mnie kod - twierdzę, że poprawnie wyłapie on każdą sumę "n" kolejnych liczb, która daje wielokrotność 1000 mniejszą, niż 10000, czyli to, czego chce autor. PS. Guzik mnie obchodzi, czy to jest jakieś AminoLotto czy inny bzdet (IMG:style_emoticons/default/smile.gif) . Nie oglądam telewizji, nie kupuję Amino, autor chciał sumowanie "n" kolejnych liczb i dostał takie sumowanie (IMG:style_emoticons/default/smile.gif) . Ten post edytował Zyx 30.11.2009, 22:13:49 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 18:56 |