Strony: [1]
  Drukuj  
Autor Wątek: Drogi na siatce - Manhatan  (Przeczytany 1470 razy)
Behoston
Administrator
Sr. Member
*****
Wiadomości: 374


277797 mati-20
Zobacz profil WWW Email
« : Marca 10, 2015, 03:22:46 »

Napisz program który idzie w górę i w prawo (losowo) i sprawdź ile średnio z takich dróg będzie szło przez <losowy punkt>. Porównaj to z matematycznym wyliczeniem <tu wstawiamy wzór> <tu go tłumaczymy>

Zaklepuje i biorę się do roboty jeśli nikt nie zgłosi sprzeciwu przez 1h
« Ostatnia zmiana: Marca 10, 2015, 07:52:59 wysłane przez maciosz » Zapisane

Ilu bioinformatyków potrzeba do wkręcenia żarówki? Żadnego, bo i tak nie ma prądu.
Behoston
Administrator
Sr. Member
*****
Wiadomości: 374


277797 mati-20
Zobacz profil WWW Email
« Odpowiedz #1 : Marca 10, 2015, 05:45:47 »

No to się biorę:

Zobaczysz zaraz jak proste do obliczenia teoretycznego zadanie można w łatwy sposób skomplikować nie zakładając pewnych ograniczeń (choć na pierwszy rzut oka mogło by się wydawać że robimy wręcz odwrotnie).

="https://www.google.pl/maps/place/Manhattan,+Nowy+Jork,+Stany+Zjednoczone/data=!4m2!3m1!1s0x89c2588f046ee661:0xa0b3281fcecc08c?sa=X&ei=xhX_VI_uBYrLaOuegIgO&ved=0CCAQ8gEwAA"Dzielnica Manhattan jest częścią Nowego Jorku. Ma bardzo ciekawy układ ulic - wszystkie tworzą regularną siatkę.
Załóżmy że mieszkamy gdzieś w tej dzielnicy i  chcemy iść do naszego znajomego mieszkającego od nas spory kawałek po przekątnej. Aby dojść do niego jak najszybciej obojętne jest jaką drogę wybierzemy jeśli tylko założymy, że nie będziemy się wracać. Zakładając, że mieszka od nas powiedzmy 20 przecznic w prawo i 20 przecznic w górę musimy przejść łącznie 40 przecznic, ale możemy iść najpierw 20 w górę, potem w prawo, albo na odwrót, albo 2 w górę, 2 w prawo itd. Za każdym razem droga będzie miała długość 40.

Zadanie pierwsze:
Napisz program który będzie losowo wybierał czy idziemy w górę czy w prawo w kolejnych 40 krokach.
Spróbuj zapisać drogę tysiąc razy a następnie sprawdź ile było różnych (polecamy nie wyświetlać nic na ekran i użyć #zbioru do zapisu dróg)
Wpisz otrzymany wynik na dole strony.

Jak widać wynik różni się, ponieważ to tylko doświadczenie losowe. Nie mamy pewności czy jeśli przeprowadzimy wiele doświadczeń odkryjemy wszystkie możliwe wyniki. Z pomocą przychodzą nam wzory teoretyczne.
Oto wzór na rzeczywistą możliwą ilość dróg #<tu dać wzór>

Teraz załóżmy, że po drodze do znajomego chcemy kupić w sklepie, leżącym gdzieś w prostokąta wyznaczonego przez punkty w których mieszkacie, popcorn bo umówiliście się na nocny maraton filmowy.

Zadanie drugie:
Napisz program, który ma założenie poprzedniego (poruszanie się tylko w górę i w prawo) oraz uwzględnia fakt, że musi najpierw dojść do pewnego punktu a następnie z niego iść do kolegi. (wskazówka: podziel zadanie na 2 prostokąty. Pierwszy od Ciebie do sklepu a drugi od sklepu do kolegi)

Podaj wynik:
Zadanie jak widać nieznacznie się komplikuje. Na szczęście tu też mamy wzór #<tu dać wzór>

Jak widzisz w takim mieście jest sporo różnych najlepszych dróg, nawet przy założeniu, że chcemy zahaczyć o jakiś punkt (jeśli chcesz, sprawdź jak wygląda sytuacja dla większej liczby punktów po drodze).

A teraz znieśmy "utrudnienie" które mówiło, że chodzimy tylko w prawo i w górę.

Zadanie trzecie:
Załóżmy, że nad ranem wracasz od znajomego zupełnie niewyspany a przez to nie potrafisz myśleć logicznie. Chcesz dostać się do domu ale zapominasz z której strony przyszedłeś i w każdym kroku idziesz w dowolną stronę.

Napisz program z zadnia pierwszego który będzie losował dowolny kierunek w którym idziemy w każdym kroku aż do momentu dotarcia. Wykonaj 1000 prób i sprawdź ile jest różnych wyników.
Odpowiedź wpisz na dole.
Jak widać dla takiej ilości prób liczba znalezionych dróg nie różni się znacząco. Ta obserwacja nasuwa nam pewne przypuszczenia. Mianowicie liczba dróg które znaleźliśmy znacząco różni się od liczby rzeczywistych możliwości.
Dodatkowo program działał znacznie dłużej niż w poprzednich wypadkach.

Zadanie czwarte:
Wiesz już że powrót zajmie o wiele więcej czasu. Wiesz też dla czego. Teraz zastanówmy się kiedy dotrzesz do domu.
Zastanówmy się nad powodem dłuższego działania programu. Jak widziałeś, zdjęliśmy tylko ograniczenie kierunku ruchu. Jednak to zamiast pomóc przysporzyło nam olbrzymich problemów - nasza ścieżka zaczęła zawracać, kręcić się i biegać po całej siatce.
Wykonaj ponownie zadanie ale tym razem zapisz długość ścieżek na listę/tablicę i policz z niej średnią. Odpowiedź podaj na dole.

Jak widzisz długość drogi uległa znacznemu wydłużeniu z powodu o którym wspomnieliśmy w treści zadania. I tu czeka Cię kolejne zaskoczenie: nie posiadamy wzoru na ilość wszystkich możliwych dróg bo jest ich nieskończenie wiele. Jeśli wymyślisz wszystkie możliwe trasy, wystarczy dodać jedno pójście w tył i jedno w przód i mamy kolejny przypadek. I tak w nieskończoność.

Zadanie piąte:
Zamiast losowego chodzenia po mieście prawdopodobnie będziesz rozpoznawał jakieś szczególne, charakterystyczne punkty i wrócisz do domu przechodzą drogę podobną do średniej z zadania poprzedniego.

Policzmy teraz ile jest szacunkowo dróg o długości równej średniej z poprzedniego zadania, wykonaj milion prób. Odpowiedź wpisz na dole.
Jak widać ta liczba jest naprawdę olbrzymia.

Ten zestaw zadań miał na celu uświadomić Ci, że nie wszystko da się opisać wzorami matematycznymi, mimo że wydaje się być naprawdę banalnie proste. Dodatkowo płynie z tego morał ważny przy prowadzeniu badań: aby wyniki jakiegoś doświadczenia były sensowne należy przedtem założyć sobie pewne rzeczy (nikt nie będzie chodził kompletnie losowo po mieście aż trafi do domu). Dzięki ograniczeniom możemy modelować nawet bardzo złożone sytuacje z dobrym przybliżeniem.


Odpowiedzi:
1
2
3
4
5
UWAGA: wpisz tylko #rząd wielkości

Zadania muszę jeszcze przetestować i dopisać wzory. Wyniki będą podawane z zakresu wyznaczonego doświadczeniem +/- 5% błędu
« Ostatnia zmiana: Marca 10, 2015, 09:16:05 wysłane przez Behoston » Zapisane

Ilu bioinformatyków potrzeba do wkręcenia żarówki? Żadnego, bo i tak nie ma prądu.
maciosz
Administrator
Hero Member
*****
Wiadomości: 723


5564019
Zobacz profil Email
« Odpowiedz #2 : Marca 10, 2015, 07:52:48 »

Nie wiem czy to wyjdzie. Na razie model zadania jest taki: mamy treść, mamy pole na odpowiedź (będącą stringiem), mamy jakieś sprawdzanie po naszej stronie, czy odpowiedź jest poprawna, na razie poprzez prymitywne przyrównanie ze zbiorem dopuszczalnych odpowiedzi (czy x==5 lub x==5.0). Możliwe komplikacje, które planowaliśmy, to:
- sprawdzanie poprawności poprzez wykonywanie jakiejś funkcji (sprawdzamy warunek f(x) == True)
- generowanie losowych danych do każdego zadania, przez co odpowiedź będzie ulegać zmianie.
Zupełnie nie planowaliśmy zadań wieloetapowych. Tzn. oczywiście planowaliśmy coś określanego taką frazą, ale chodziło o to, że użytkownik robi pierwsze zadanie z ciągu, a po kilku zadaniach trafia na kolejne, które tematycznie przypomina poprzednie i jest jego rozwinięciem; ale generalnie oba są niezależną całością. Można by np. zrobić drugie nie robiąc pierwszego, jeśli ktoś ma dostateczną wiedzę. Nie ma fabularnej ciągłości między nimi. A już na pewno nie zakładaliśmy, że użytkownikowi może się wyświetlać co innego w zależności od wpisanej odpowiedzi.

Zadanie jest więc generalnie w porządku, ale przypuszczam, że będzie trzeba je zmodyfikować jakoś, żeby w ogóle dało się je umieścić w serwisie. Np. podzielić na kilka zadań, albo usunąć zadania po drodze i od razu przejść do ostatniego.

Z powodu owych wątpliwości i faktu, że w tej formie zadanie zdecydowanie nie jest przygotowane do wrzucenia do obecnej wersji serwisu, oznaczam znakiem zapytania.
Zapisane

Chaos zawsze pokonuje porządek, gdyż jest lepiej zorganizowany.
Terry Pratchett
Behoston
Administrator
Sr. Member
*****
Wiadomości: 374


277797 mati-20
Zobacz profil WWW Email
« Odpowiedz #3 : Marca 10, 2015, 08:04:19 »

no bez przesady. Chyba nie robimy serwisu który możliwości ma żadne (tj wpisanie liczby i sprawdzenie czy się równa naszej....)
Jak coś robimy to zakładam że to nie będzie strona robiona na kolanie i że w php nawet da się zrobić warunek 5<x<6
-_-" jak nie będzie takich podstawowych rzeczy to powodzenia życzę i nie widzę dalszego sensu wspierania tego.

Nawet jeśli pytanie będzie schematyczne to odpowiedzi można podać po kolei po przecinku i podać np. rząd wielkości... nie szukajmy problemów tam gdzie ich nie powinniśmy zastać


poprawione
« Ostatnia zmiana: Marca 10, 2015, 08:24:05 wysłane przez Behoston » Zapisane

Ilu bioinformatyków potrzeba do wkręcenia żarówki? Żadnego, bo i tak nie ma prądu.
maciosz
Administrator
Hero Member
*****
Wiadomości: 723


5564019
Zobacz profil Email
« Odpowiedz #4 : Marca 10, 2015, 09:08:40 »

To nie jest szukanie problemów tam gdzie nie powinniśmy go zastać. To są problemy, które były omawiane na spotkaniach z Pawłem i o których już pisałam. Paweł musi wiedzieć, co ma napisać w skrypcie i jaką możliwość wpisania wzorcowej odpowiedzi musi dać wprowadzającemu zadanie. Aktualna wersja jest taka, że wprowadzający zadanie podaje po prostu wzorcową odpowiedź, albo zbiór wzorcowych odpowiedzi, i jedyne co robi skrypt to sprawdza, czy podana przez użytkownika odpowiedź jest równa którejś z odpowiedzi wzorcowych. Już nawet to tak naprawdę często nie załatwia przypadków pozornie prostych - np. liczby zmiennoprzecinkowe trzeba pamiętać, że każdy może podać w trochę innej formie, z kropką, przecinkiem, inną l. miejsc po przecinku etc. Albo słowo może być z wielkiej lub z małej.

Plan jest taki, żeby dać wprowadzającemu zadanie możliwość napisania jakiejś funkcji, która dostanie jako argument podaną przez użytkownika odpowiedź i zwróci True albo False - taka opcja załatwia odpowiedzi w stylu 5<x<6, albo nawet testowanie modelu na podanych parametrach.

W niczym nie zmienia to faktu, że nie wspiera to zadań wieloetapowych i to już jest zupełna zmiana koncepcji.

Bardzo proszę nie zarzucać Pawłowi, że robi stronę na kolanie. Strona jest robiona w umożliwiającym wiele rzeczy drupalu. Porządnie. Oczywiście, że da się do niej dodać praktycznie wszystko, tylko trzeba wiedzieć, co dokładnie chcemy dodać i mieć jakąś spójną koncepcję. Na razie schemat jest taki: zadanie to treść i pole na odpowiedź, użytkownik wpisuje odpowiedź, odpowiedź się wysyła, serwer podejmuje decyzję i wyświetla 'dobrze' lub 'źle'. Autor ma aktualnie pole do wpisania treści i do wpisania wzorcowej odpowiedzi. Pole do odpowiedzi może się zmienić w pole do wpisania funkcji walidującej poprawność rozwiązania. I to wymaga od Pawła trochę pracy, ale jest do zrobienia w rozsądnym czasie i ma dużo sensu. Ale zmienienie pola do wpisania statycznej treści w pole do wpisania jakiejś interaktywnej treści z kilkoma polami na odpowiedź i zmieniającej się w zależności od tego, co zostanie tam wpisane - to już jest zupełnie co innego.

Czepiałam się głównie tego, że najwyraźniej treść zadania miała reagować jakoś na odpowiedzi wpisane od użytkownika. W takiej formie, jak jest teraz myślę że może przejść. Jeszcze nad nim pomyślę, bo teraz trochę się zirytowałam Twoją uwagą o stronie na kolanie i powodzenia życzę.
Zapisane

Chaos zawsze pokonuje porządek, gdyż jest lepiej zorganizowany.
Terry Pratchett
Behoston
Administrator
Sr. Member
*****
Wiadomości: 374


277797 mati-20
Zobacz profil WWW Email
« Odpowiedz #5 : Marca 10, 2015, 09:12:56 »

Absolutnie nie zarzucam, mam zajęcia I wiem że nie ma takiej opcji. Mówię tylko, że dla mnie to bardzo dziwne że my nie dostajemy żadnej swobody co jak widać mocno nam ogranicza pole działań. Pisałem o tym wcześniej ze taka opcja jest nam niezbędna jak napisanie własnego kawałka kodu do sprawdzania w php

Nie chce żeby coś wyglądało mało profesjonalnie i mówię, że możemy zająć się tym my bo czasu jest niesamowicie mało i zdaje sobie z tego sprawę

A ja się irytuje tym że skoro się już zabieramy to nie chce żeby czegoś brakowało. Bo Zabrzmiało to jak to,  że możemy tylko sprawdzić liczbę.



Przepraszam jeśli brzmie zbyt agresywnie ale naprawdę zależy mi żeby to ruszyło skoro już się podjęliśmy i jestem trochę zły że tak późno.
« Ostatnia zmiana: Marca 10, 2015, 09:19:04 wysłane przez Behoston » Zapisane

Ilu bioinformatyków potrzeba do wkręcenia żarówki? Żadnego, bo i tak nie ma prądu.
Strony: [1]
  Drukuj  
 
Skocz do:  


SimplePortal 2.3.1 © 2008-2009, SimplePortal