![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 271 Pomógł: 4 Dołączył: 5.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
Słuchajcie potrzebuje zrobić np. taką tablicę, która będzie wyglądała tak:
0 1 0 0 1 1 0 1 1 0 0 1 1 0 0 0 1 0 0 1 0 0 0 0 1 ogólnie wielkość tablicy nie ma znaczenia, ale najważniejsze co chce osiągnąć to to, żeby zliczyć sumę elementów zarówno w pionie jak i w poziomie. Czyli w tym przypadku powinienem otrzymać np 2 tablice - pion [1,3,2,1,3], poziom [2,3,2,2,1] o ile to jest jeszcze połową sukcesu to później chce na podstawie tablic pion i poziom zobaczyć co miałem tam wcześniej, może tam być np. jakiś znak, chce to zastosować w OCR.. ktoś ma jakiś pomysł jak powinien wyglądać algorytm sprawdzający sumę poszczególnych linii? a może jest dostępne gdzieś takie rozwiązanie?? edt: oczywiście pierwsza część czyli stworzenie tablicy pion i poziom jest banalne, bo wystarczy foreach i zliczyć, ale chodzi bardziej o odczytanie tablic pion i poziom i zbudowanie na ich podstawie jednej tablicy Ten post edytował chomiczek 5.04.2010, 14:31:15 -------------------- created by chomiczek
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Funkcje array_combine i/lub array_merge powinny być pomocne.
-------------------- Nie pomagam na pw, tylko forum.
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 590 Pomógł: 185 Dołączył: 19.04.2006 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Cytat 2 tablice - pion [1,3,2,1,3], poziom [2,3,2,2,1] - nic prostszego, parsujesz tablicę pętlą foreach:- pozostaje policzyć lub wprowadzić ręcznie rozmiar tablicy i w zależności od stanu liczników dodać zmienną $value do odpowiedniego indeksu nowych tablic pion i poziom. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 271 Pomógł: 4 Dołączył: 5.01.2005 Ostrzeżenie: (0%) ![]() ![]() |
@Pilsener hmm.. jakoś mi ten kod Twój nie działa..
mam wątpliwości odnośnie linii 3, skoro w 1 linijce masz:
poza tym tak jak pisałem utworzenie tablic pion i poziom nie jest wielkim problem.. kwestia jak z tych dwóch tablic utworzyć tablicę źródłową. Co do tego co pisze darko to też chyba nie do końca pomocne.. ewentualnie w jaki sposób zrobić odwzorowanie płaskiej tablicy w 2 wymiarach i porównać sumy X z Y?? teoretycznie tablice można by zapisać jako:
tylko co mi to tak naprawdę da.. tutaj rozpisałem wszystkie wartości o lewej, ale równie dobrze można by je dać od prawej.. z przecięcia takich tablic nie dostanę tego co bym chciał.. Ten post edytował chomiczek 5.04.2010, 19:03:03 -------------------- created by chomiczek
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 812 Pomógł: 117 Dołączył: 2.12.2008 Ostrzeżenie: (10%) ![]() ![]() |
[...] poza tym tak jak pisałem utworzenie tablic pion i poziom nie jest wielkim problem.. kwestia jak z tych dwóch tablic utworzyć tablicę źródłową. [...] Pytasz o to z taką pewnością, jak byś wiedział, że jest to możliwe do wykonania, a czy sprawdziłeś? Otóż nie jest. Zamieniając główną tablicę na dwie mniejsze tracisz część informacji. Nie zawsze musi dać się w jednoznaczny sposób odwrócić tą operację. Przykład: mamy tablicę (1*) 1 0 0 0 1 0 0 0 1 obliczmy: - pion: 1 1 1 - poziom: 1 1 1 I te dane owszem pasują do tablicy 1*, ale pasują również do tablicy 2*. tablica 2*: 0 0 1 0 1 0 1 0 0 -------------------- |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 97 Pomógł: 11 Dołączył: 2.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Tak jak flashdev napisał jest to nie możliwe do realizacji w taki sposób jak być to chciał osiągnąć.
Jednak jeśli koniecznie potrzebujesz zrobić skrót tej tablicy polecam skorzystanie z "odwróconej dwójkowości" (nazwę właśnie wymyśliłem na potrzeby odpowiedzi ;P ) Czyli stosujemy system dwójkowy tyle, że zamiast od prawej, liczymy od lewej (jedyny sens zastosowania odwrotności jest taki, że wg mnie prościej wtedy się operuje na tablicach 2D o nieznanym wymiarze) Czyli biorąc tą tablicę: 0 1 0 0 1 1 0 1 1 0 0 1 1 0 0 0 1 0 0 1 0 0 0 0 1 Zapis byłby następujący (jeśli się nie pomyliłem) dla wierszy 17 13 6 18 16 I to starczy bo właściwie kolumny odtworzą Ci się same z siebie, więc nie ma sensu robić zliczania kolumnowego... [edit] Nie sprawdzałem tego kodu ale powinno zadziałać (tab to twoja tabliza 01)
Ten post edytował toel 9.04.2010, 15:32:29 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 16 Pomógł: 2 Dołączył: 22.01.2006 Ostrzeżenie: (0%) ![]() ![]() |
Hmm, troszkę się pomęczyłem i nie wiem jaki jest powód, ale działa dobrze do momentu.
Wszystko powinno być ok jak na to patrzę, ale coś nie gra, przynajmniej na localhoscie. Poziomo oblicza normalnie, pionowo już nie do końca. To pewnie wina zmęczenia, kodzę od jakichś 16 godzin z przerwą na obiad:P EDIT: Napisałem, i 10 sekund później znalazłem buga, już poprawione:) Ten post edytował Psychopath 11.04.2010, 04:52:58 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 06:47 |