Skocz do zawartości
Zamknięcie Forum PC LAB

Szanowny Użytkowniku,

Informujemy, że za 30 dni tj. 30 listopada 2024 r. serwis internetowy Forum PC LAB zostanie zamknięty.

Administrator Serwisu Forum PC LAB - Ringier Axel Springer Polska sp. z o.o. z siedzibą w Warszawie: wypowiada całość usług Serwisu Forum PC LAB z zachowaniem miesięcznego okresu wypowiedzenia.

Administrator Serwisu Forum PC LAB informuje, że:

  1. Z dniem 29 listopada 2024 r. zakończy się świadczenie wszystkich usług Serwisu Forum PC LAB. Ważną przyczyną uzasadniającą wypowiedzenie jest zamknięcie Serwisu Forum PC LAB
  2. Dotychczas zamowione przez Użytkownika usługi Serwisu Forum PC LAB będą świadczone w okresie wypowiedzenia tj. do dnia 29 listopada 2024 r.
  3. Po ogłoszeniu zamknięcia Serwisu Forum od dnia 30 października 2024 r. zakładanie nowych kont w serwisie Forum PC LAB nie będzie możliwe
  4. Wraz z zamknięciem Serwisu Forum PC LAB, tj. dnia 29 listopada 2024 r. nie będzie już dostępny katalog treści Forum PC LAB. Do tego czasu Użytkownicy Forum PC LAB mają dostęp do swoich treści w zakładce "Profil", gdzie mają możliwość ich skopiowania lub archiwizowania w formie screenshotów.
  5. Administrator danych osobowych Użytkowników - Ringier Axel Springer Polska sp. z o.o. z siedzibą w Warszawie zapewnia realizację praw podmiotów danych osobowych przez cały okres świadczenia usług Serwisu Forum PC LAB. Szczegółowe informacje znajdziesz w Polityce Prywatności

Administrator informuje, iż wraz z zamknięciem Serwisu Forum PC LAB, dane osobowe Użytkowników Serwisu Forum PC LAB zostaną trwale usunięte ze względu na brak podstawy ich dalszego przetwarzania. Proces trwałego usuwania danych z kopii zapasowych może przekroczyć termin zamknięcia Forum PC LAB o kilka miesięcy. Wyjątek może stanowić przetwarzanie danych użytkownika do czasu zakończenia toczących się postepowań.

Temat został przeniesiony do archiwum

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

kostek13_88

OI....

Rekomendowane odpowiedzi

...sprawdzić wszystkie klocki już zrzucone to by było jakieś 4*N! porównań...

 

Rojmarek:

 

A jednak się pomyliłem, nie wiem skąd mi się ta N! wzięła jak to powinna być suma ciągu arytmetycznego czyli w najgorszym wypadku złożoność by była rzędu 4*((N/2)*N) czyli 2*N^2 (co by się zgadzało z Twoimi obliczeniami..więc chyba zgadłem ;)

 

Dodatkowo można wprowadzić parę optymalizacji które przyspieszą ten algorytm w pewnych sytuacjach.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

kosztem zuzycia pamieci mozna np. do 1/4 zmniejszyc liczbe porownan (ale to tak na wielkie oko), w najgorszym wypadku liczba porownan pozostanie taka sama

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
kosztem zuzycia pamieci mozna np. do 1/4 zmniejszyc liczbe porownan (ale to tak na wielkie oko), w najgorszym wypadku liczba porownan pozostanie taka sama

 

Można też użyć listy uporządkowanej i to na dwa różne sposoby, jedna polepsza złożoność w najgorszym przypadku, druga lepiej się sprawdzi w przeciętnych sytuacjach.

 

Można też w pewnych sytuacjach zmniejszyć ilość klocków z jakimi porównujemy.

 

A co Ty masz na myśli to szczerze powiedziawszy nie wiem :( Jakie dane tam można buforować?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Można też użyć listy uporządkowanej i to na dwa różne sposoby, jedna polepsza złożoność w najgorszym przypadku, druga lepiej się sprawdzi w przeciętnych sytuacjach.

 

Można też w pewnych sytuacjach zmniejszyć ilość klocków z jakimi porównujemy.

 

A co Ty masz na myśli to szczerze powiedziawszy nie wiem :( Jakie dane tam można buforować?

jak już zgadnąłeś to: mam listę dwukierunkową, posortowaną wg wysokości klocka, idzie po liście od największego w w dół, jak znajdzie klocek z którym sie pokrywa to w_nowego+=w_znalezione; potem idę po liście w górę i szukam miejsca gdzie wstawić nowego.

zmiejszenie ilości klocków wiąże się z tym, ze za każdym razem musisz przejść całą tablicę i wykonać jeszcze 2 porównania, wiec marne chyba przyspieszenie, jak dadzą hamski test...

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

hmmm a moze ktos powiedziec mi dlaczego nie dziala test na stronie SIO? podaje kod zrodlowy kra.pas (poprawnie dzialajacy program), w plik wyjsciowy podaje kra.exe i wyskakuje mi w tescie error 106 bład wykonania...

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
hmmm a moze ktos powiedziec mi dlaczego nie dziala test na stronie SIO? podaje kod zrodlowy kra.pas (poprawnie dzialajacy program), w plik wyjsciowy podaje kra.exe i wyskakuje mi w tescie error 106 bład wykonania...

bo tam jest napisane "plik wEjściowy" i tam wrzucasz Twoj zestaw danych dla ktorych chciałbys sprawdzic Twoje rozwiązanie - Twoj program...

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

zmienili limity czasowe na TET ;] 40 sekund w najgorszym wypadku ;]

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

a ile wczesniej bylo ?

 

klocki w tetrisie mozna podzielic na 5 grup (wieksza liczba chyba bedzie jedynie przerostem mozliwosci i niewiele da), jesli nowy klocek leci w lewy gorny cwiartek, to po co porownywac go z klockami z prawego dolnego cwiartka ?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
a ile wczesniej bylo ?

 

klocki w tetrisie mozna podzielic na 5 grup (wieksza liczba chyba bedzie jedynie przerostem mozliwosci i niewiele da), jesli nowy klocek leci w lewy gorny cwiartek, to po co porownywac go z klockami z prawego dolnego cwiartka ?

było 10s. Złożność pesymistyczna dalej ta sama, a nawet wieksza... chociaz średnia na pewno lepsza ;)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
a ile wczesniej bylo ?

 

klocki w tetrisie mozna podzielic na 5 grup (wieksza liczba chyba bedzie jedynie przerostem mozliwosci i niewiele da), jesli nowy klocek leci w lewy gorny cwiartek, to po co porownywac go z klockami z prawego dolnego cwiartka ?

 

hmmm... ale jezeli klocek spada centralnie w lewy gorny rog ale jest tak duzy ze zaczepi o jakis z prawej dolnej cwiartki to juz nie wychwycisz tego?

 

Mam jeszcze pytanko takie... Ucze sie pascala moze od tygodnia wiec wybaczcie moja niewiedze... :E Co jest wydajniejsze? Przeszukac tablice dwuwymiarowa w poszukiwaniu najwyzszej wartosci petlami czy funkcja rekurencyjna? Nie wiem jak tego tetrisa uproscic.... narazie mam wszystko na petlach porobione i na duzych testach w ogole dupa zbita. :E

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

wychwyce, bo klocki beda podzielone na 5 grup: cwiartki + mieszane, jesli bedzie lecial klocek cwiartkowy, to sprawdzam z odpowiednia cwiartka oraz mieszanym, jesli bedzie lecial mieszany, to albo z kazda lista (albo okreslic na jakie cwiartki sie ten klocek rozklada)

 

petle: costam[a] zamieniane jest na odpowiednie miejsce w pamieci zapisane jako [c] (pamiec jest liniowa), jesli masz for for if to masz bardzo fajny spowalniacz

 

rekurencja: na stos wrzucany jest adres powrotu i wykonywana jest znowu funkcja, to wrzucenie na stos i zdjecie ze stosu troche zajmuje (jakby mi sie chcialo zajrzec do ksiazki, to bym podal mniej wiecej ile cykli w czystym asemblerze), no i nalezy pamietac o ograniczeniu na wielkosc stosu (o ile pamietam, to w pascalu {$M} sluzylo do ustawienia wielkosci stosu)

 

najlepsze rozwiazanie: napisac obydwie metody i sprawdzic w praktyce ktora bedzie szybsza :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ciągle mam problemy z zadaniem KRA, przecież ono jest banalne :mad2: a moje rozwiązania mają beznadziejne czasy. Czytałem cały ten temat i też nic mi się nie rozjaśniło. Proszę o wyrozumiałość i kolejne hinty.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Ciągle mam problemy z zadaniem KRA, przecież ono jest banalne :mad2: a moje rozwiązania mają beznadziejne czasy. Czytałem cały ten temat i też nic mi się nie rozjaśniło. Proszę o wyrozumiałość i kolejne hinty.

w sumie to juz to co napisaliśmy jest wbrew regulaminowi OI...

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

1. zauwaz, ze rure mozna zapisac inaczej niz zbior roznych srednic

2. licz polozenie klockow od miejsca w ktorym zatrzymaly sie poprzednie

 

edit: raczej chodzilo o kod, bo wymyslec jak ma cos dzialac, to kazdy potrafi, ale z wykonaniem jest roznie (jak np. taki Windows, wymyslony jest jako system operacyjny spelniajacy szereg wymagan, a w praktyce roznie z tym jest, glownie dzieki IE :D)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

januzi, mistrzu... w życiu chyba nie pojmę o co Ci chodziło... prawie zrobiłem już tetrisa...z taaaaaaaaaakim if'em :D i nie wróże dobrego czasu... jedynym moim problemem jest to że gdzieś sie wkradł błąd... i narazie nie chce mi się nad tym myśleć :P

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Tez nie do konca czaje o co Ci chodzilo, ale "to dlatego Ty jestes szefem a nie odwrotnie... " ;)

 

W zadaniu z krazkami moim zdaniem warto zwrocic uwage na to ze jezeli pierwszy walczyk na gorze ma srednice 5 to wszystkie wieksze srednice nizej nie powinny nas interesowac. czyli klocek w rurce 5cm, 6cm, 4cm, 3cm, 6cm, 2cm i 3cm. Powinien byc sprawdzany przy 5cm, 4cm, 3cm,2cm. To narazie luzny pomysl, bo dopiero teraz odkladam tetrisa na bok i biore sie za inne zadania.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
najlepsze rozwiazanie: napisac obydwie metody i sprawdzic w praktyce ktora bedzie szybsza :)

 

Zwykle zakłada się, że interacja jest lepszym rozwiązaniem niż rekurencja (zwykle też komplikuje algorytm ;)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

dlatego niech napisze obydwa sposoby :) bedzie mial trening i na wlasne oczy sie przekona co i jak

 

apropo rekurencji, to czasami jest latwiejsza w uzyciu, bo przy iteracji trzeba by okreslic zakres, a przy rekurencji wystarczy podac punkt poczatkowy i dalej leci samo

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
dlatego niech napisze obydwa sposoby :) bedzie mial trening i na wlasne oczy sie przekona co i jak

 

apropo rekurencji, to czasami jest latwiejsza w uzyciu, bo przy iteracji trzeba by okreslic zakres, a przy rekurencji wystarczy podac punkt poczatkowy i dalej leci samo

 

Wyczułem tą zachętę do treningu. :P Probowalem ta rekurencje napisac, ale nie dalem rady. Odstawilem na bok tetrisa i sie wzialem za krazki. W sumie juz zrobilem, lecz nie moze podolac na najbardziej wrednym tescie. ;)

 

BTW. Trenuje non-stop. ;)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

pamietaj, ze im mniej porownan w petli tym lepiej

nic tak nie zabija programu jak if then else w srodku petli

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
pamietaj, ze im mniej porownan w petli tym lepiej

nic tak nie zabija programu jak if then else w srodku petli

 

Ok. Dzieki za cenna rade. Rzeczywiscie troszke mam tych porownan w petlach. Bede musial sie tego w jakis sposob pozbyc.

 

W standardowych testach dla krazkow mam podobne czasy co Kostek i Rojmarek. Tylko z jednym testem sobie nie moge poradzic. http://btk.net.pl/~bikol1/bicom/test_max3.zip Mozecie zobaczyc jak Wam smiga? Moze moj komp nie daje rady (tylko 400mhz). Albo sa zle dane wejsciowe. Jezeli u Was dobrze by chodzilo tzn ze musze cos z kodem pokombinowac. A na SiO tego nie idzie wyslac... za duzo zajmuje po spakowaniu.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
Ok. Dzieki za cenna rade. Rzeczywiscie troszke mam tych porownan w petlach. Bede musial sie tego w jakis sposob pozbyc.

 

W standardowych testach dla krazkow mam podobne czasy co Kostek i Rojmarek. Tylko z jednym testem sobie nie moge poradzic. http://btk.net.pl/~bikol1/bicom/test_max3.zip Mozecie zobaczyc jak Wam smiga? Moze moj komp nie daje rady (tylko 400mhz). Albo sa zle dane wejsciowe. Jezeli u Was dobrze by chodzilo tzn ze musze cos z kodem pokombinowac. A na SiO tego nie idzie wyslac... za duzo zajmuje po spakowaniu.

mi wyrzucił odpowiedź 11 po jakiejś pół sekundy... (procesor 800MHz)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

ech... :( siedze nad tymi krazkami od wczoraj.... Najprostrzy algorytm do ktorego doszedlem polega na porownaniu kazdego klocka kolejno z segmentami rury od gory... :? Od czego wyjsc zeby zrobic linowy algorytm?

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
ech... :( siedze nad tymi krazkami od wczoraj.... Najprostrzy algorytm do ktorego doszedlem polega na porownaniu kazdego klocka kolejno z segmentami rury od gory... :? Od czego wyjsc zeby zrobic linowy algorytm?

od tego ze informatyka to zboczona nauka i wszystko chciałaby robić "od tyłu" :P

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

  • Tematy

  • Odpowiedzi

    • Cześć all Znajomy chce złożyć nowego kompa Prosiłbym coś doradzić na temat tego zestawu  Przedział to 5500-6000zł wraz z monitorem  MSI B550-A PRO AMD Ryzen 5 5600X Cooler Master MWE GOLD-V2. 750W 80 Plus Gold Kingston FURY 32GB (2x16GB) 3200MHz CL16 Beast Black Genesis IRID 505F Gigabyte GeForce RTX 4060 Ti Eagle 8G GDDR6 Silver Monkey X STORMY 120mm Lexar 1TB M.2 PCle Gen4 NVMe NQ790 BenQ ZOWIE XL254OK czarny https://ibb.co/3WRkpmk ( zdjęcie zestawu )
    • Siedem to jeszcze niedużo. Są osoby, które mają na przykład ponad setkę latarek. Ja zgromadziłem tylko kilkanaście.
    • Siedem multimetrów.... okeeejjjjjjjjjjjj........ https://i.giphy.com/HoCPpVFKfvK5HRugp3.webp
    • Hmmmm, tak się zastanawiałem jaki ja mam fetysz i opanować się nie mogę. Wyszło na to, że to multimetry. Mam ich chyba z siedem nie licząc zabawek z biedry. Jak nie mam już co mierzyć to biorę sondy w łapę i straszę dzieciaki uważające, że w domu to tylko ojciec jest dziadersem. Dziadersem, który nie rozumie współczesnej młodzieży.  No, kuźwa... nie rozumiem i tyle. 
    • Weź sprzedaj tego Phenoma i kup FX 8300  Będzie na pewno sporo lepiej, a teraz ludzie chcą za te procki grosze. W dodatku na Twojej płycie na spokojnie go podkręcisz wyżej niż na 4GHz, nawet przy chłodzeniu pokroju Spartana Pro - a zegar to właściwie jedyna przewaga wyższych modeli nad tym.  P.S. Normalnie nikomu w życiu nie proponowałbym FX'a, ale skoro chłop zaszalał na tyle by kupić 32GB RAM'u i ma jedną z lepszych płyt to co ma do stracenia  Jakiś czas temu widziałem 8300 z Spartanem 3 Pro ARGB za 7 dych, jak poszuka to sam procek za 50/60 upoluje, a na Phenoma może za te 40 zł znajdzie jelenia Co do NVMe w razie czego służę pomocą, modułami w UEFI bawiłem się już nie raz.
  • Aktywni użytkownicy

×
×
  • Dodaj nową pozycję...