- 1
- 2
-
Anonim
mam mały problemik... Wykładowca przesłał mi mailem program do wykonania, muszę go zrobić do poniedziałku, ale niestety nawet nie moge zrozumieć o co mu dokładnie w tym chodzi!!! Może ktoś z was widział już takie zadanie albo jest w stanie je zrobic/ udzielić mi wskazówek, byłnym bardzo wdzięczny...
Oto zadanie:
"Pana, prosty, projekt jest nastpujacy.
Program okresla polozenie kwadratu w tablicy dwuwymiarowej, ktory charakteryzuje
sie najwieksza suma elementow (kwadratu) sposrod wszystkich kwadratow, ktore mozna
wpisac w tablice dwuwymiarowa. Parametrami sa: rozmiar tablicy dwuwymiarowej
oraz rozmiar kwadratu.
Powodzenia"
proszę o pomoc. PILNE
z góry thx... -
Anonim
chyba chodzi mu o to, ze jesli zadasz tablice:
9, 4, -1, 2
7, 8, -4, -2
-5, 0, -3, 8
i zapytasz o najwiekszy pod wzgledem sumy kwadrat o rozmiarach 2x2
program powinien zwrocic polozenie np. gornego lewego elementu takiego kwadratu ( a w zasadzie podmacierzy or sth )
w tym przypadku powinno to byc 9, czyli [ 0 ][ 0 ] -
Maciek Makowski
> Parametrami sa: rozmiar tablicy dwuwymiarowej
> oraz rozmiar kwadratu.
Tak sformułowne zadanie nie ma sensu, bo parametrem powinna być sama tablica, a nie tylko jej rozmiar. Jak nie znamy zawartości tablicy to skąd mamy wiedzieć, jaka jest suma elementów w danym kwadracie?
Przyjmując, że zawartość tablicy jest również dana na wejściu, zadanie rzeczywiście wydaje się być bardzo proste -- trudniej by było, gdyby rozmiar kwadratu nie był ustalony. Tutaj robi się właściwie brute force; jedyna optymalizacja, jaką jest sens zastosować, daje zejście z czasem z n*m*k^2 do min(n, m)*k^2+n*m*k (oszacowanie bardzo z grubsza) kosztem zużycia k pamięci, gdzie n, m -- wymiary tablicy wejsciowej, k -- dlugosc boku kwadratu.
Nie wiem tylko, co to zadanie ("projekt"?) ma wspólnego z Javą.
-
Anonim
-
-
Anonim
>Nie wiem tylko, co to zadanie ("projekt"?) ma wspólnego
>z Javą.
Hehe - a no to ze java to policzy...
Poza tym to jest podstawa nauczania i troszke myslenia...
-
Adept
>Maciek Makowski napisał
>> Parametrami sa: rozmiar tablicy dwuwymiarowej
>> oraz rozmiar kwadratu.
>
>Tak sformułowne zadanie nie ma sensu, bo parametrem
>powinna być sama tablica, a nie tylko jej rozmiar. Jak
>nie znamy zawartości tablicy to skąd mamy
>wiedzieć, jaka jest suma elementów w danym
>kwadracie?
>
Bzdura. A o klasie Random kiedyś słyszałeś?? :P Zgadza się - nie ma tego napisanego - ale w takiej troeści (przynajmniej mi ) się to od razu nasuwa
>Nie wiem tylko, co to zadanie ("projekt"?) ma wspólnego
>z Javą.
>
To że trzeba go napisać w javie, zastosować jakiś algorytm. zgadza się - nie jest jakiś wymyślny - ale twoje zdanie jest moim zdaniem trochę bez sensu.
Pozdrawiam
-
Maciek Makowski
> Bzdura. A o klasie Random kiedyś słyszałeś?? :P Zgadza się - nie ma
> tego napisanego - ale w takiej troeści (przynajmniej mi ) się to od
> razu nasuwa
Możesz rozwinąć? W czym pomoże tu Random?
> To że trzeba go napisać w javie, zastosować jakiś algorytm.
Od "projektu z Javy" oczekiwałbym, że daje możliwość zastosowania jakiegoś układu obiektów do rozwiązania zadania. Oczekiwałbym, że pozwoli on sprawdzić, czy rozwiązujący potrafi programować w tym języku. Odpowiedz sobie sam, czy po zobaczeniu rozwiązania tego zadania byłbyś w stanie ocenić umiejętności Javowe delikwenta.
-
Dzemus
>Maciek Makowski napisał
>Możesz rozwinąć? W czym pomoże tu
>Random?
Duh! Wygenerujemy sobie Randomem zawartość tablicy... -
Maciek Makowski
Aha. No, ta interpretacja ma faktycznie sporo zalet, m. in. taka, ze rozwiazuje sie w jednej linijce i w czasie stalym:
java.awt.Point maxKwadrat(int n, int m, int k) {
return (n < k || m < k) ? null : new java.awt.Point(new java.util.Random().nextInt(n - k + 1), new java.util.Random().nextInt(m - k + 1));
}
Wada jej jest natomiast to, ze nie wydaje mi sie, zeby wynikala z tresci zadania. Gdyby to tak mialo wygladac, to nie mialoby ono juz zupelnie zadnego sensu.
-
Dzemus
-
Adept
>Maciek Makowski napisał
>Aha. No, ta interpretacja ma faktycznie sporo zalet, m. in.
>taka, ze rozwiazuje sie w jednej linijce i w czasie stalym:
>
>java.awt.Point maxKwadrat(int n, int m, int k) {
> return (n < k || m < k) ? null : new java.awt.Point(new
>java.util.Random().nextInt(n - k + 1), new
>java.util.Random().nextInt(m - k + 1));
>}
>
>Wada jej jest natomiast to, ze nie wydaje mi sie, zeby
>wynikala z tresci zadania. Gdyby to tak mialo wygladac, to
>nie mialoby ono juz zupelnie zadnego sensu.
>
Wyobraź sobie ża ja w losowaniu punktu też nie wydze żadnego sensu.
Natomiast ja potrafię sobie wyobrazić też takie rozwiązanie - że losuje sobie zawartość każdej komórki macierzy o zadanych parametrach, wypisuje ją a nastepnie szukam i wypisuje podmacierz kwadratową o największej sumie.
No ale może ja mam bujną wyobraźnie i faktycznie jedynym sposobem użycia clasy Random jest wylosowanie po prostu punktu ....
-
Maciek Makowski
> Natomiast ja potrafię sobie wyobrazić też takie rozwiązanie
> - że losuje sobie zawartość każdej komórki macierzy o zadanych
> parametrach, wypisuje ją a nastepnie szukam i wypisuje podmacierz
> kwadratową o największej sumie.
Pewnie, ze mozna tak, tylko po co? Nie prosciej od razu wylosowac wspolrzedne tego kwadratu, zamiast meczyc sie z cala macierza?
-
Anonim
-
Maciek Makowski
A gdzie jest napisane, ze trzeba cos liczyc? W tresci jest: "program okresla polozenie kwadratu". Okreslic mozna tez przez zgadniecie. -
Adept
czy ty w ogóle przeczytałes treśc tego zadania?? Bo moim zdaniem nie... chyba że masz kłopoty ze zrozumieniem tego prostego fragmentu:
"gram okresla polozenie kwadratu w tablicy dwuwymiarowej, ktory charakteryzuje
sie najwieksza suma elementow (kwadratu) sposrod wszystkich kwadratow" -
Anonim
>> To że trzeba go napisać w javie, zastosować
>jakiś algorytm.
>
>Od "projektu z Javy" oczekiwałbym, że daje
>możliwość zastosowania jakiegoś
>układu obiektów do rozwiązania zadania.
>Oczekiwałbym, że pozwoli on sprawdzić, czy
>rozwiązujący potrafi programować w tym
>języku. Odpowiedz sobie sam, czy po zobaczeniu
>rozwiązania tego zadania byłbyś w stanie
>ocenić umiejętności Javowe delikwenta.
dokładnie, ale niestety często się teraz zdaża, że 'nauka Javy' to w domyśle 'nauka programowania'. lol. polecam ten artykuł: http://www.joelonsoftware.com/artic...
-
Anonim
>Adept napisał
>czy ty w ogóle przeczytałes treśc tego
>zadania?? Bo moim zdaniem nie... chyba że masz
>kłopoty ze zrozumieniem tego prostego fragmentu:
>
>"gram okresla polozenie kwadratu w tablicy dwuwymiarowej,
>ktory charakteryzuje
>sie najwieksza suma elementow (kwadratu) sposrod wszystkich
>kwadratow"
nie mamy żadnych przesłanek, żeby uważać, że ten kwadrat był lub będzie do czegokolwiek wykorzystywany w programie, zwrócenie losowych liczb jest zgodne ze specyfikacją.
złą specyfikacją. fin? -
Adept
>Dreamer_ napisał
>nie mamy żadnych przesłanek, żeby
>uważać, że ten kwadrat był lub
>będzie do czegokolwiek wykorzystywany w programie,
>zwrócenie losowych liczb jest zgodne ze
>specyfikacją.
>złą specyfikacją. fin?
czy ty sobie jaja robisz?? zresztą nie pierwszy raz piszesz coś takiego na tym gronie. przecież jest wyraźnie napisane że ten kwadrat ma zawierać liczby których suma jest największa wśród wszystkich takich kwadratów. -
Dzemus
Adept - nie piekl się, chłopaki mają rację - ponieważ nie jest powiedziane skąd tą macierz bierzesz, to możesz równie dobrze ją wziąć z kosmosu, a więc w gruncie rzeczy ten kwadrat może być wylosowany. Po prostu chodzi o to, że żeby to miało jakikolwiek sens, do funkcji powinniśmy przekazać już wygenerowaną tablicę z elementami, a nie same jej wymiary, bo jakim cudem wtedy można sprawdzić czy zwrócony kwadrat jest faktycznie "maksymalny" (skrót myślowy).
No chyba, że zwrócimy w ogóle obiekt, który będzie w sobie zawierał wygenerowaną tablicę i współrzędne tego kwadratu:P -
Adept
>Dzemus napisał
>Adept - nie piekl się, chłopaki mają
>rację - ponieważ nie jest powiedziane skąd
>tą macierz bierzesz, to możesz równie dobrze
>ją wziąć z kosmosu, a więc w gruncie
>rzeczy ten kwadrat może być wylosowany.
Czy wy ludzie sobie jaja robicie??
nie jest powiediane skąd ma być wzięta macierz (więc ja założyłem ze ma być wylosowana), ale kwadrat ma już bardzo konkretne wymagania - i nie może sobie być po prostu wylosowany - bo ma być elementem macierze z określonym warunkiem.
>Po prostu
>chodzi o to, że żeby to miało jakikolwiek
>sens, do funkcji powinniśmy przekazać już
>wygenerowaną tablicę z elementami, a nie same jej
>wymiary, bo jakim cudem wtedy można sprawdzić czy
>zwrócony kwadrat jest faktycznie "maksymalny"
>(skrót myślowy).
>
>No chyba, że zwrócimy w ogóle obiekt,
>który będzie w sobie zawierał
>wygenerowaną tablicę i współrzędne
>tego kwadratu:P
no to jest chyba jasne ... nie wiem jak twoim, ale moim zdaniem - każdy program tórego działania w żaden sposó nie możemy zobaczyć - jest bez sensu. No ale może się myle.
Podsumowując - zgoda - nie ma napisanego skąd macierz (ale to wymyślcie mi inne źródłow takim razie niż losowanie elementów), ale to wcale nie znaczy że można sobie kwadrat z dupy wyciągnąć i go pokazać... przecież wymagania co do niego są bardzo precyzyjnie określone.
Zadanie jest bardzo proste.. i nie wiem czemu szukacie cały czas w nim dzury i czepiacie się - moim zdaniem kompletnie bez sensu.
- 1
- 2
- Przeglądaj grona w kategorii Internet i Komputery
- Przeglądaj grona w okolicy Warszawa
- Załóż własne grono tematyczne
- Zostań moderatorem
Podobne Tematy
|
|
Wszystko co związane z programowaniem w Java (J2EE, JSP, JDBC, itd) test
Miejsca grona (1)
-
Kino Luna ul. Marszałkowska, Warszawa
www.kinoluna.pl kino.luna@maxfilm.com.pl 22 621 78 28
- Dodaj miejsce

