matematika i programiranje

  • Začetnik teme Začetnik teme dirg@
  • Datum pokretanja Datum pokretanja
stanje
Zatvorena za pisanje odgovora.
Uh sto volim ljude poput tebe koji misle da su najbolji, najveci i sa najvecim. Ja sam ti dao konktretan primer kada je indeksiranje u pitanju i da mnoge baze podataka nude vise nacina da se uradi indexiranje.
Ne, nisi me razumeo, ne mislim ja da sam najbolji i najveci (a ne patim za najvecim, kao sto i sam rekao, najvaznija je tehnika :). Nikad u zivotu programesrkom to nisam ni pomislio. UVEK ima bolji, pa i tog boljeg bolji, i tako u nedogled..

Ti ako ne znas nista o algoritmima izabraces neki pa ces sa njim dobiti bolje rezultate a pitanje je da li bi sa drugim nacinom indexiranja dobio jos bolje rezultate. Pa da bi to razumeo treba da se upustas u algorimte za sortiranje. Pa kada krenes da izucavas svaki od tih algoritama tu onda potajno lezi matematika u celoj prici oko odredjivanja kompleksnosti algoritama itd...
Ja na pominjem po vec 10 put da mozes ti da budes programer i bez velikog znjanaj matematike i da napises cas i operativni sistem samo kada dolazi pitanje optimizacije koda ti sve na sta mozes da se oslonis je zdravorazumski rezon dok meni pored toga stoji na raspolaganju ceo matematicki aparat.

Jesto, u ptavu si, ali negde valjda ima kraj optimizaciji, ili cemo cekati, dok neko ne izvrsio "optimizaciju svih optimizacija.." da bi se program lansirao?
Za mene je optimizovan program, koji odradjuje posao onoliko brzo koliko je za rad klijenta neophodno, da ne gusi druge procese, da se izvestaji i rezultati vide "optimalnom" brzinom. Ne zelim da patim od perfekcije, nikad je niko nije dostigao...
Na primer, jedna od mojih zadnjih aplikacija, radi sa mnogo baza, ali 4 su zaista velike (preko 1 milion slogova je generisano u svakoj od te 4).
Zadatim uslovom, koji stavlja 3 baze u relacije, a cetvrta sadrzi "dimanicke" slogove po datumima, vrstama i jos po nekim atributima, izvlacim rezultate jako brzo, naravno brze nego sto stampac stampa. Izmerio sam, rezultat je privremena baza, koja se popuni za 2 do 2.5 sekunde (oko 250 slogova je izdvojeno u proseku, jer se tako postavlja datumski rang). A koristi podatke iz SVAKE od 4 velike baze, stim, sto je 4-ta puna pojedinacnih rezultata, za zadati datumski rang. Sto se mene tice, optimizacija mi nije porebna. A ni klijentu. Pri tome se i napise HTML strana, posalje preko okeana, sto je zapravo najduzi proces... Pa sta da jos optimizujem? TO je zapravo srz moje diskusije ovde.

I slazem se ja sa tobom, moze se sve uraditi bolje, optimizovanije. ALi zatim, ponovo bolje i optimizovanije itd.
Samo sto se mene tice, efikasnost programa i brzina rada (i naravno tacnost, no to je druga tema), je uvek bila na nivou, gde se nije osecala ni najmanja potreba za daljom optimizacijom. Zato tvrdim da se moze i ovako, ali i onako, iskustvo tu mnogo posla vrsi.

Osim toga, postoje i hardverski limiti. Ma kako ti napravio brz algoritam, ako hardver (ili Internet konekcija), ne moze da propusti, dzaba ti bilo i "warp brzinske" optimizacije... Postoje limiti.

Ma nije to bre filozofija, primera radi pomenuo si bouble sort algoritam, i on koristi isti skup funkcija kao i quicksort algoritam(funkcije poredjenja i indeksiranje elementa u nizu i operaciju dodele, plus jednu for petlju), pa se tvoj bouble sort izvrsava u slozenosti O(n*n) a quick sort radi brzinom O(n*logn) e sada ako ne znas sta je to ti uzmi digitron pa izracunaj koliko je za npr n = 100 000 vreme izvrsavanja jednog ili drugog algoritma.( Mada posto verujem da si windows programer i da baratas sa C/C++ uzmi borland c++ builder tamo imas cini mi se primer koji je radio sa threadovima i koji je demonstritao 3 razlicita algoritma za sortiranje pa ces videti slikovno o cemu ja ovde pricam)
Vidis, koliko si zapeo za matematikom.
Pa ne treba meni nista drugo do funkcija i komanda za indeksiranje i pretragu. Zasto mislis da bih imao potrebu za ispitujem slozenost sortiranja? Sta god da radim, imam u vidu PODATKE, od kojih je mnogo vazno kakvog su tipa takodje. Ako primenujem neki index (sortiranje ne koristim, jer indeksiranjem, postavljanjem "scope" i relacijama izdvajam podatke), ne mogu mnogo da ucinim ako jednom primenjujem to na datumske+stringove+numerike - a drugi puta numerike+stringove, nisu uvek isti problemi i zahtevi, itd...
Ako cu ogromne podatke da izvlacim za 2 sekunde, postoji granica gde ce SVAKI klijent biti zadovoljan. Ne govorim naravno o inzenjerskim programima i slozenim proracunima, gde je i piko sekunda vazna. Govorim o "poslovnim" programima, gde je na primer vazno saznati, od cega je neki proizvod napravljen, koliko elemenata sadrzi, koliko je sve to kostalo (razdvojeno po ceni elemeneta, radnika, transporta itd itd). Ako to odradim za bilo koji proizvod na primer, za manje od 2 sekunde, svi zadovoljni :)
To sam uzeo samo kao primer, jer tehnicki orijentisane programe nikada nisam radio, sigurno i zbog pomanjkanja znanja matematika, to priznajem.

Hoces recimo da mnozimo 2 polinoma velikih stepenova pa da vidimo ko ce brzi algoritam da napravi. Ili hoces recimo da vidimo ko moze brze da podeli ceo niz sa jednom konstantom, ili ko moze brze da izracuna sve kvadrate od 1 pa do nekog n ? To su sve proste stvari koje eto kada se matematikom zabavis a relativno cesto mogu da se iskoriste, ili mozda da mozda vidimo ko moze brze sinuse i kosinuse da izracuna za sve stepene od 0 do 90 stepeni, za svaki stepen ili recimo pola stepena.
Ma necu polinome, ne znam sa njima, ( a ilice mi na polipe), samo hocu da u Grckoj startujem obradu nad stoitinama hiljada elemenata, izvucem podatke u sekundama, napravim HTML u letu, posaljem u USA i odande se vrati "thank you..". Ako sve to odradim za veoma kratko vreme, polinomi me stvarno ne interesuju, jer znajuci rad sa njima, nista ne mogu bolje dobiti...

A sta mislis da ja radim sedim i racunam jedan problem po hiljadu puta pa sve do uzaludnosti.
Ne, naravno, inace ne bi preziveo, ali sigurno postoje pozicije i situacije, koje vec po strukturi prepoznajes, pa koristis neku ranije razradjenu tehniku... A to je ono sto ja radim takodje. Sad, da li sam ja do takvih "prepoznatljivih" resenja dosao metodom pokusaja i gresaka, ili kao ti, svestranom matematickom analizom, druga je stvar. Mozda je moj put bio "bolniji" ali se zavrsava negde sa iskustvenim pristupom, vec prema "prepoznatoj" ili "slicnoj" situaciji od ranije. Da ne pominjem UDF, koje se napisu jednom za odredjene slicne situacije, pa sam do daljeg miran.

Vec sam ti pomenuo malo ranije da pogledas algoritme za sortiranje, iako recimo "zdravorazumski" quickqost izgleda komplikovanije i duzi je po broju linija koda, a opet je drasticno brzi. Ako ne znas o cemu pricam pogledaj primer u builderu ili na googlu a ako bash ne uspes da nadjes nije problem poslacu ti par algoritama za sortiranje pa ces moci da vidis uzivo sta matematika radi na zivom primeru. A od algorimata za sortiranje svaka baza podataka mnogo zavisi jer se time skracuje vreme pretrage mnogo.
Vec sam rekao da stvarno ne zivim od analize algoritama i razrade svega u detalje. Kada bih tako radio kao sto predlazes (googlovao da nesto takvo nadjem i analiziram), davno bih ostao bez hleba.

Nope :lol: vama prosecnim programerima ostavimo da pisete gui, a mi uglavnom odradimo ono iznutra i uzmemo 10 puta vise para od vas :lol:. Uostalom pogledaj samo ko je sve izumeo vaznije algoritme u istoriji prorgamiranja. Videces da su tu 80% matematicari, brojke sve govore.

Slazem se, bez genijalaca koji su sve to zapoceli, nigde ni nas ne bi bilo, ali sve se uproscava i svodi na neki nivo gde i mi "prosecni" uzimamo lovu, a ne moram da znamo kako je neko do svega toga dosao.
Recimo pre nekog vremena sam zavrsio jedan program u xHArboru (verzija xBase kompajlera), i tamo postoji komanda/funkcija koja od mnogo stotina hiljada slogova a mnogo polja, pronadje slozenu konstrukciju indeksa za manje od desetinke sekunde. Stvarno ne znam kako je to napisano ali sto se mene tice, slozim index, zatrazim da mi nadje i to je to. Pa necu valjda pisati moje rutine za to. Neko je to perfektno uradio ako mi nadje sta treba za "blink" oka...
E o tome pricam.
A ako ti govoris o izradi ovakvih funkcija i algortmima za njih, onda brate sve vreme pricamo o dve razlicite stvari.

U svakom slucaju, ne sporim da je veoma znacajno poznavanje matematike i aniliticki i prakticki je koristiti. Samo ne mogu se sloziti da bez nje ce programi biti losi, a sa njom dobri. To jednostavno nije tacno.
Sidji malo sa visine matematickog gurua, pa zadji po raznoraznim programerskim kucama u Beogradu. Svi nesto rade, prodaju programe a ako negde nadjes da je u ekipi OBAVEZAN i dobar matematicar (osim ako se ne bave nekim visoko tehnicki orijentisanim programima), onda mi molim te kazi, da vidim to cudo. Govorim o klasicnim "poslovnim" (ili kako hoces da ih nazovem) aplikacijama. A od toga se zivi.
Nema previse posla za visoko specijalizovane programerske poslove, to valjda znas i sam. Treba raditi i programe od koji se za 'leba zaradjuje.
I slazem se, ako "ubodes" posao napolju na programiranju specijalivanih prorgama gde se trazi i veliko matematicko znanje, tu lezi lova (bez matematike neces ni do recepcije doci). Ali koliko ljudi ima srece da takvo mesto dobije?
Ostali programer, izgleda da ce po tvome morati da se zadovolje "prosecnim" programiranjem, jer nisu vrsni matematicari. gde li sam samo to vec cuo?

Al' ajde, smorismo ljude ovom nasom diskusijom, stvarno ti iskreno zelim uspeha u radu, sa znanjem koje posedujes, nadam se da ces uspeti. MI programeri smo neka posebna kasta izgleda, nismo sujetni i uvek smo spremni na saradnju.
To sto neki puta diskusija bude zucna, nikako ne znaci da smo neprijatelji. I dalje se ne slazemo, ali to nije razlog da se i svadjamo. Ne mogu te ubediti, ne mozes me ubediti. A mozda i ne slusamo jedno drugo dovoljno dobro?
Zdrav mi budi.
 
Ala vi imate slobodnog vremena na pretek...

U ovom Ratu-i-Miru ste mogli i neshto konkretno da napishete, za promenu...
Svadja vam je trula, kako bre mozhete da uporedjujete programerske zahteve za rad sa bazama i nekim drugim, low-level stvarima. Aj' ne meshajte babe i zhabe.
 
Lord British:
Ala vi imate slobodnog vremena na pretek...

U ovom Ratu-i-Miru ste mogli i neshto konkretno da napishete, za promenu...
Svadja vam je trula, kako bre mozhete da uporedjujete programerske zahteve za rad sa bazama i nekim drugim, low-level stvarima. Aj' ne meshajte babe i zhabe.
Slazem se, radi se o najmanje dva razlicita programerska zahteva. Ja sam govorio o baratanju bazama podataka iskljucivo, Null je govorio o opstim aspektima programiranja, pa se zato i nismo razumeli. Mislim da smo obojica bili "uglavnom u pravu" svaki sa svog stanovista.
Zbog toga je diskusija zavrsena sto se mene tice. Zao mi je ako se neko dosadjivao ovde, ali eto zatrefila se i ovakva tema.
Sto se vremena tice, svako jutro potrosim po sat vremena, odgovarajuci na postu i citajuci forumske teme. Dobar je to "zalet" pred celodnevni rad :)
 
Ok NULL, nadji bug u sledecoj kodi:


CArray< int,int&> my_carray;

int some_number = 1;
my_carray.Add(some_number);

for(int i=0; i<=10; i++) {
my_carray.Add(my_carray[0]);
}

TRACE("\nIndex\tValue");
for(int j=0; j<=10; j++) {
TRACE("\n%d\t%d", j, my_carray[j]);
}

TRACE output je:

Index Value
0 1
1 -572662307
2 1
3 1
4 1
5 -572662307
6 1
7 1
8 1
9 -572662307
10 1
 
Nina2:
Ok NULL, nadji bug u sledecoj kodi:


CArray< int,int&> my_carray;

int some_number = 1;
my_carray.Add(some_number);

for(int i=0; i<=10; i++) {
my_carray.Add(my_carray[0]);
}

TRACE("\nIndex\tValue");
for(int j=0; j<=10; j++) {
TRACE("\n%d\t%d", j, my_carray[j]);
}

TRACE output je:

Index Value
0 1
1 -572662307
2 1
3 1
4 1
5 -572662307
6 1
7 1
8 1
9 -572662307
10 1
bez zelje da omalovazavam nekog, ali jako je glupo skinuti deo teksta sa www.codeproject.com i onda postavljati pitanje nekom i onda ga proveravati koliko zna....da si bar izmenila deo koda pa da te ne provalim...ovako....ovo stvarno nije lepo od tebe nina
btw>>ne znam kakve ovo ima veze sa matematikom, ovde je vishe problem u mfc-u posto je jako jadan, tj nije bash najbolje oop resenje
 
kakve veze ima gde je skinula kodu, koliko vidim nigde i nije napisala da je koda njena
a sa codeproject se mogu videti fini problemi iz kojih moze svasta da se nauci sto verujem da je i htela da pokaze
nema tu omalovazavanja stavise! to pokazuje koliko se neko stvarno interesuje za programiranje bez obzira da li je matematicar ili ne!
 
ok.......mada ja mislim da nije fer to sto je uradila....lepse je da je to ona otkrila pa poslala svima da znamo zasto ima bug....ali ok....ali kao sto rekoh ne znam da li se time dokazuje da je on losh programer ako je dobar matematichar......ne mogu se tako oceniti stvari
 
milos12345:
bez zelje da omalovazavam nekog, ali jako je glupo skinuti deo teksta sa www.codeproject.com i onda postavljati pitanje nekom i onda ga proveravati koliko zna....da si bar izmenila deo koda pa da te ne provalim...ovako....ovo stvarno nije lepo od tebe nina
btw>>ne znam kakve ovo ima veze sa matematikom, ovde je vishe problem u mfc-u posto je jako jadan, tj nije bash najbolje oop resenje

Milose, malo bi bilo glupo da napisem odakle je koda zar ne? Jer bih samim tim dala i resenje. A bugove u svojoj kodi trazim sama. Ovo je bilo pastovano ovde cisto radoznalosti radi, jer bi bug za nekog kao sto je NULL bila sitnica naci posto toliko tvrdi da je odlicno poznavanje matematike preduslov odlicnog programera sa cime se apsolutno ne slazem, ne samo ja vec i vecina programera (odlicnih) koje znam a koji nisu matematicari. Nasuprot tome, poznajem tipa koji je odlican matematicar (zavrsio je sa visokom ocenom matematicki fakultet) i koji je radio samnom u istoj firmi neko vreme a nevidjeno je los programer.
Malo je bezveze sto si ti odgovorio umesto NULL-a, jer eto znas za codeproject.com (sto je za svaku pohvalu btw), ali ja bih mu ionako rekla odakle je koda uopste i gde moze naci resenje, jer kao sto rece neko pre mene, nisam ni rekla da je koda moja, niti bih, jer svaki iole dobar programer bi znao za postojanje codeprojecta, plus sto bi stvarno bilo smesno od mene da pustim druge da traze bugove u mojoj kodi (osecala bih se malo nesposobno iskreno receno).
Nema ljutis, nema svadje niti prekoravanja.
Nece me biti neko vreme, zato bih molila bez prozivki za sada jer necu moci da odgovorim, sto nikako ne bi bilo fer.
Pozdrav svima.
 
Iskreno receno neznam odgovor jer ne poznajem MFC klase, i nikada nisam koristio njih. A opet kada sam na googlu uneo CArray 4. sajt je code project s tim delom koji si postovala. A koliko vidm oni su ceprkali po samoj klasi sto Codemaker naravno nikakno ne radi.

A sa druge strane poslala si deo koda koji radi normalno, i bug nije na tom delu koda vec u samoj klasi malo trulo ako mene pitas.

A kada smo vec kod klase CArray zar nije bolje koristiti STL nego se bakcati sa CArray i ostalim MFC kontejnerskim klasama. NEko ce reci postoji par implementacija STL-a i ne znas gde koja radi koliko brzo a ja cu vam na tako nesto reci nabavite najnoviju verziju kompajlera jer je ISO C++ standardizovao kolika je maksimalna slozenost( O() ) treba da bude za pojedine operacije. Tako da je i to reseno sa druge strane niste vezani za jedan kompajler bez obzira sto koristite c++
 
NULL:
Iskreno receno neznam odgovor jer ne poznajem MFC klase, i nikada nisam koristio njih. A opet kada sam na googlu uneo CArray 4. sajt je code project s tim delom koji si postovala. A koliko vidm oni su ceprkali po samoj klasi sto Codemaker naravno nikakno ne radi.

A sa druge strane poslala si deo koda koji radi normalno, i bug nije na tom delu koda vec u samoj klasi malo trulo ako mene pitas.

A kada smo vec kod klase CArray zar nije bolje koristiti STL nego se bakcati sa CArray i ostalim MFC kontejnerskim klasama. NEko ce reci postoji par implementacija STL-a i ne znas gde koja radi koliko brzo a ja cu vam na tako nesto reci nabavite najnoviju verziju kompajlera jer je ISO C++ standardizovao kolika je maksimalna slozenost( O() ) treba da bude za pojedine operacije. Tako da je i to reseno sa druge strane niste vezani za jedan kompajler bez obzira sto koristite c++

Ej NULL, nemoj me cackati ako nije neophodno.
Sam kazes da ne poznajes klase, pa sta me onda prozivas? Klase i OOP sam poceo upotrebljavati Mnoooogo davno, cim je OOP pocelo da biva zanimljivo, tada verovatno nisi znao ni PC da ukljucis kako treba (mada se tu ogradjujem , jer ne znam tvoje godine)

Pre svega xHarbour koji koristim intenzivno unazad dve godine, (mnogo dobar xBAse kompajler), se oslanja ISKLJUCIVIO na klase. Kreirao sam vise klasa (sto "from scratch" pa do nasledjenih) i prilagodio mnoge mojim potrebama, nego sto si ti u verovatno zivotu video.
Prema tome o teoriji i praksi upotrebe klasa vec mogu doktor da budem, te nemoj lupati molim te.
Za razliku od tebe, ja se ne oslanjam iskljucivo na M$ programe i njihove klase (koje ti ne poznajes), ja ih intenzivno kreiram takodje. Tako, veoma dobro poznajem logiku OOP a nesto ne osetih da mi tu nedostaje matematika koju ti pominjes.
A prozivas mene? Svaka cast!

Pa ako znas nesto matematike, nisu svi budale oko tebe !

Ajde mi sad pocni pricu da je za kreiranje, izmenu i upotrebu klasa visoka matematika neophodna. Daj momak, spusti se malo na zemlju, ako padnes, povredices se (sto se mnogima vec desilo, jer nisu videli da su se previsoko popeli u svom samozadovoljstvu, pa izgubili kontakt sa stvarnoscu).
Mada za tebe je stvarni OOP spansko selo po svoj prilici.

I mani me se, kad te lepo molim, nemam vremena za jalove rasprave sa tobom. Posto uzimas 10 puta vise para od svog rada od mene (jer si zaboga matematicar-programer), ja moram da zurim da barem malo zaradim sa svojim blazenim neznanjem.

Nadji nekog drugog pa mu objasni svoju folizofiju, a mene zaobidji nisam tvoj "matematicki" kalibar.
 
codemaker:
Ej NULL, nemoj me cackati ako nije neophodno.
Sam kazes da ne poznajes klase, pa sta me onda prozivas? Klase i OOP sam poceo upotrebljavati Mnoooogo davno, cim je OOP pocelo da biva zanimljivo, tada verovatno nisi znao ni PC da ukljucis kako treba (mada se tu ogradjujem , jer ne znam tvoje godine)

Pa ako te bash zanima imam 25 godina, a prvi kompjuter mi je bio Commodore 116, drugi je bio C64, a prvi PC(386sx na 16MHz) sam imao davne 1988 godine. A razlog sto sam te pomenuo je cinjenica da si rekao da ti nikada ne gledas gotove klase vec sve uzimas zdravo za gotovo a sada je nina pokazala bash jedan takav bug.

codemaker:
Pre svega xHarbour koji koristim intenzivno unazad dve godine, (mnogo dobar xBAse kompajler), se oslanja ISKLJUCIVIO na klase. Kreirao sam vise klasa (sto "from scratch" pa do nasledjenih)
Znam za xHarbour, to je open source kompajler bese 32-bitni Clipper ako se ne varam.

codemaker:
Za razliku od tebe, ja se ne oslanjam iskljucivo na M$ programe i njihove klase (koje ti ne poznajes), ja ih intenzivno kreiram takodje. Tako, veoma dobro poznajem logiku OOP a nesto ne osetih da mi tu nedostaje matematika koju ti pominjes.
A prozivas mene? Svaka cast!
Pre svega molio bih te da ne donosis neke pausalne zakljucke, odakle ti ideja da se ja oslanjam na Microsoftove proizvode i njihova razvojna okruzenja. Ako bash zelis da znas sta to programiram, pa bavim se unix programiranjem(od sistemskog,do pisanja drajvera, pa sve do GUI programiranja)


codemaker:
Ajde mi sad pocni pricu da je za kreiranje, izmenu i upotrebu klasa visoka matematika neophodna. Daj momak, spusti se malo na zemlju, ako padnes, povredices se (sto se mnogima vec desilo, jer nisu videli da su se previsoko popeli u svom samozadovoljstvu, pa izgubili kontakt sa stvarnoscu).
Mada za tebe je stvarni OOP spansko selo po svoj prilici.

Gospodine pekaru vec sam rekao bez pausalnog opisivanja, ako imas kompleks od toga sto si ti programer samouk a ja kroz skolovanje naucio i kako da upotrebim matematicki aparat kako bi pisao bolje programe to je tvoj problem i molim te leci svoje komplekse na nekom drugom mestu. Po tvojoj prici ako ne znam MFC klase ne znam ni da programiram koristeci OO paradigmu sto nema veze sa zivotom(jer moze covek da bude odlican c++ programer bez da poznaje MFC, vec sam rekao da ima toliko portabilnih toolkitova tako da koristiti MFC po meni je betoniranje svog programa na MS Windows platformu)
 
stanje
Zatvorena za pisanje odgovora.

Back
Top