Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Konkurs Jesień 2010
Forum PHP.pl > Inne > Opinie, ogłoszenia, pytania > Konkursy
Stron: 1, 2, 3, 4
8rol
Cytat(ADeM @ 17.11.2010, 20:24:21 ) *
Cytat(8rol @ 17.11.2010, 20:21:00 ) *

A sprawdzał go ktoś czy działa, gdy ciąg z parametrami będzie składał się również/tylko z małych liter?

W specyfikacji masz podane, że przed parametrami beda litery KWAZ (napisane duzymi).



W treści zadania napisane było:

Cytat
Szyfrowanie parametrów
Parametry (kolumny, wiersze, minimum i maksimum) zostaną podane w postaci zaszyfrowanego ciągu znaków. W skład ciągu wchodzą jedynie litery i cyfry.
Wielkość liter nie ma znaczenia.


Fakt, że odnosi się to do przetworzonego już ciągu, jednak w jakim celu zostało dopisane to ostatnie zdanie?


Natomiast zwycięska praca nie działa, gdy ciąg będzie zbudowany z małych liter.
Trochę to niesprawiedliwe, że kwestia wielkości liter nie została jasno określona. Ostatnie zdanie sugerowało, że ciąg może składać się zarówno z małych jakich dużych liter. Dlatego ja (i inne osoby) zastosowały zapobiegawczo funkcję będące w stanie działać zarówno na małych jak i dużych literach, a to oczywiście ma negatywny wpływ na szybkość skryptu.

No ale cóż smile.gif
Spawnm
Mnie dość mocno zaskoczyła ilość fail wyników ...
Nie mniej gratuluję tym którym chciało się brać udział w zabawie a w szczególności zwycięzcom smile.gif
dr_bonzo
Wiele problemów bylo niedoprecyzowanych w specyfikacji. Wymagało to zabezpieczenia sie przed nimi "tak na wszelki wypadek". A zwycięski kod wykłada się na najprostszych z nich - długość ciągu wejściowego i wielkość liter.
ADeM
"kolumny – kodowany jako litera „K” i liczba, K16 oznacza 16 kolumn
wiersze – kodowany jako litera „W” i liczba, W4 oznacza 4 wiersze
minimum – kodowany jako litera „A” i liczba, A1 oznacza minimum 1
maksimum – kodowany jako litera „Z” i liczba, Z7 oznacza maksimum 7"
Z tego wynika jasno, że litery KWAZ miały być duże.
8rol
Kolejna sprawa jest taka, że wyniki chyba powinny zostać najpierw posortowane według czasów, a potem według statusów (OK/FAIL).

Podejrzewam, że gdyby najszybsza praca nie miałaby statusu OK, to zwycięstwo należałoby do najbliższej osoby ze statusem OK.
Zatem moim zdaniem nie powinno być tak, że ktoś znajduję się powiedzmy na 30 miejscu ze statusem OK, a przed nim są pracę z FAIL z powodu na przykład braku nowej linii na końcu.

W jaki sposób można założyć, że gdyby prace bez nowych linii zostały poprawione i uzupełnione o dodawanie nowych linii, to nadal znajdowałaby się powyżej 30 miejsca, a nie spadłaby wtedy niżej?
ernie242
28 miejsce, ale przynajmniej testy w PHPUnit coś dały...

A zwycięska praca to rzeczywiście coś ładnego.
luinnar
Ja dziękuję wszystkim za dobrą zabawę. Cieszę się że tyle osób wzięło udział w konkursie i że mogłem na chwile znów zajrzeć w stare php.plowe progi smile.gif
DeyV
Cytat(8rol @ 17.11.2010, 21:04:45 ) *
W jaki sposób można założyć, że gdyby prace bez nowych linii zostały poprawione i uzupełnione o ...


Tak naprawdę kolejność prac poniżej pierwszej trójki nie miała dla nas bardzo dużego znaczenia, dlatego też zdecydowaliśmy się na opublikowanie jej w tej wersji.

Dobrze również się złożyło, że wszystkie prace z podium nie miały w naszych testach żadnych faili, bo wtedy musielibyśmy zdecydować, co z tym zrobić, tak o jeden problem mieliśmy mniej winksmiley.jpg

Nie ukrywam jednak, że w przypadku tego zadania błąd nadmiarowego lub brakującego znaku nowej linii nie jest dla mnie sprawą kluczową, tak więc wszyscy autorzy prac, które zwracają wyniki zgodne z oczekiwaniami mają powód do zadowolenia i dumy - niezależnie do tego \n na końcu które było lub nie.

Co do reszty uwag - spróbujemy z nich skorzystać następnym razem, choć nie ukrywamy, że opracowanie takiego zadania konkursowego, które nie pozostawiałoby żadnych wątpliwości jest naprawdę gigantyczną pracą.
ernie242
Cytat(DeyV @ 17.11.2010, 21:18:39 ) *
[...] choć nie ukrywamy, że opracowanie takiego zadania konkursowego, które nie pozostawiałoby żadnych wątpliwości jest naprawdę gigantyczną pracą.


Jak najbardziej mogę się z tym zgodzić. Jeszcze raz dziękuję za wspaniałą zabawę!
kaliberx
Obawiam się, że stało się to co opisywałem odnośnie pomiarów.
Według oficjalnego rankingu mój kod zajął drugie miejsce. Pewnie jesteście zainteresowani kodem, więc postanowiłem go opublikować.

Co mnie martwi, to według moich pomiarów kod zwycięski jest średnio 30% wolniejszy od mojego, a według Jury szybszy o 0.46%. No ale mówi się trudno, regulamin jest regulaminem. Ocenę pozakonkursową pozostawiam forumowiczom. Mam nadzieję, że przy organizacji kolejnych konkursów organizatorzy wyciągną wnioski z naszych komentarzy smile.gif
dr_bonzo
Cytat
Co do reszty uwag - spróbujemy z nich skorzystać następnym razem, choć nie ukrywamy, że opracowanie takiego zadania konkursowego, które nie pozostawiałoby żadnych wątpliwości jest naprawdę gigantyczną pracą.


To mi sie podoba smile.gif


Cytat
Nie ukrywam jednak, że w przypadku tego zadania błąd nadmiarowego lub brakującego znaku nowej linii nie jest dla mnie sprawą kluczową, tak więc wszyscy autorzy prac, które zwracają wyniki zgodne z oczekiwaniami mają powód do zadowolenia i dumy - niezależnie do tego \n na końcu które było lub nie.

A to nie, bo czemu ten blad zostal zignorowany, a inne bledy nie (jak np. hmmm, te moje)?

-------
edit:

Cytat
Co mnie martwi, to według moich pomiarów kod zwycięski jest średnio 30% wolniejszy od mojego, a według Jury szybszy o 0.46%. No ale mówi się trudno, regulamin jest regulaminem. Ocenę pozakonkursową pozostawiam forumowiczom. Mam nadzieję, że przy organizacji kolejnych konkursów organizatorzy wyciągną wnioski z naszych komentarzy smile.gif


Otrzymane wyniki zaleza od sposobu testowania, ten uzyty w tym konkursie byl jaki byl - zlikwidowal drobne roznice miedzy skryptami. Ale kazdy go znal i wiedzial ze tak bedzie to testowane.
r4xz
tak btw to mogę czuć się wyróżniony jako najbardziej roztrzepany "(5) przed kwadratami nagłówek z danymi osobowymi" wstydnis.gif

co do konkursu to był dobrze opisany. oby więcej takich no i oczywiście więcej uczestników by się przydało!
8rol
kaliberx i twój działa przy ciągu zawierającym małe litery smile.gif

Czyli jak widać, kwestia wielkości znaków nie była w pełni jasna.
flashdev
Cytat(DeyV @ 17.11.2010, 21:18:39 ) *
Co do reszty uwag - spróbujemy z nich skorzystać następnym razem, choć nie ukrywamy, że opracowanie takiego zadania konkursowego, które nie pozostawiałoby żadnych wątpliwości jest naprawdę gigantyczną pracą.


Są już jakieś plany co do daty kolejnego konkursu? smile.gif
rolka
Ehh wylosowałem dopiero 11 miejsce :/
Gratuluję zwycięzcom i dziękuję organizatorom za ciekawy konkurs!
askone
Cytat(kaliberx @ 17.11.2010, 21:30:05 ) *
Według oficjalnego rankingu mój kod zajął drugie miejsce. Pewnie jesteście zainteresowani kodem, więc postanowiłem go opublikować.


Patrząc na Twój kod widzę, iż szedłem dobrą drogą. Gdybym tylko się nie wywrócił na jednym przypadku to szanse były duże smile.gif Najważniejsze, że sporo się nauczyłem i tylko czekać na kolejny konkurs

Gratulacje dla Zwycięzców
phpion
Również gratuluję zwycięzcom smile.gif Moja praca zajęła 6 miejsce więc nie tak źle. Troszkę martwią mnie niewielkie różnice pomiędzy kolejnymi pracami. Chyba faktycznie zadecydował w pewnym sensie przypadek. Bardziej miarodajne wyniki byłyby licząc jakiś bardziej stały czynnik, np. maksymalne zużycie pamięci, no ale nie o to chodziło w tym konkursie. Tak czy siak dzięki za zabawę i jeszcze raz gratulacje dla zwycięzców.

Swoją drogą: uchylicie rąbka tajemnicy w jaki sposób dokonywaliście testów? Ja u siebie puściłem testy dla wszystkich podanych zestawów wejściowych i łączny czas wykonania wszystkich (zapisywany do bazy dla każdego uruchomienia w każdym zestawie) to ok. 7 sekund. Testowałem za pomocą ApacheBench:
Cytat
ab -n1000 -c1 http://adres

czyli teoretycznie osiągane wyniki powinny być jeszcze gorsze od Waszych. Żeby było jasne: nie mam zastrzeżeń co do uzyskiwanych wyników bo generalnie proporcje są zachowane. Interesuje mnie jedynie ta ogromna różnica między Waszymi wynikami, a tymi uzyskanymi przeze mnie.
dr_bonzo
@phpion - podejrzewam ze twoj apache ma wbudoway modul php'a - przez co troche szybciej odpala ten interpreter, niz zwykle odpalenie php'a z konsoli.
phpion
Możliwe, nie będę teoretyzował hehe. Odpaliłem jeszcze test bat'em:
Kod
@echo off

for /f "tokens=1-4 delims=:." %%a in ("%time%") do set start=%%a:%%b:%%c
echo %start%

for /L %%i in (1,1,1000) do php -f phpion.php I3OHUI5Y0UXU7VQO9U63C > zrzut.txt

for /f "tokens=1-4 delims=:." %%a in ("%time%") do set stop=%%a:%%b:%%c
echo %stop%

i czas pracy to ok. 10 minut smile.gif więc już kompletna porażka winksmiley.jpg
dr_bonzo
Moj benchmark

http://paste-it.net/public/tf452d5/

$ php benchmark.php 1000

Dawał ok 48s dla 1000ca odpalen jednego kodu.

@phppion - miales czasy "identyczne" jak wszystkie skrypty ktore testowalem, wiec sie tak nie martw winksmiley.jpg
phpion
Hehe, nie martwię się. Tym bardziej, że i tak miałem błąd związany z brakiem ostatniego entera. Wkurzyłbym się lekko gdyby mój kod okazał się mega turbo szybki, ale z racji tego błędu zostałby zdyskwalifikowany. W obecnej sytuacji jestem wyluzowany winksmiley.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.