Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Schimbare adresa DNS IPv4 pe rout...

Recomandare Barebone

Monede JO 2024

Suprasolicitare sistem electric
 CIV auto import

Mutare in MOZAMBIC - pareri, expe...

Scoatere antifurt airtag de pe ha...

Magnet in loc de clește pent...
 Cumparat/Locuit in apartament si ...

Pot folosi sistemul PC pe post de...

Sokol cu distorsiuni de cross-over

Filtru apa potabila cu osmoza inv...
 Kanal D va difuza serialul “...

Upgrade xiaomi mi11

securitate - acum se dau drept - ...

Farmacia Dr Max - Pareri / Sugest...
 

De ce zero factorial este 1

- - - - -
  • Please log in to reply
27 replies to this topic

#19
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,440
  • Înscris: 10.08.2005
for -  pentru un interval (pornind de la ..), daca se indeplineste o  conditie,  pas (incement / decrement)
while - cat timp se indeplineste o conditie

Edited by MarianG, 31 December 2017 - 14:15.


#20
navistar_eagle

navistar_eagle

    Member

  • Grup: Members
  • Posts: 958
  • Înscris: 16.11.2017

 dani.user, on 31 decembrie 2017 - 13:59, said:

Ce inseamna pana la urma un algoritm optim?
  • Timp si/sau spatiu cat mai scazut pentru a rezolva problema in cauza
  • Cod mai usor de inteles
Optim inseamna ca algoritmul ruleaza in ecartul de resurse cum il doresc eu si ca lizibiliatea codului este asa cum doresc eu, programator

Quote

Urmand codul tau, rezulta ceva ce nu-i optim din nici un punct de vedere: https://godbolt.org/g/vUVXRX
  • Codul e atat mai lung, cat si mai greu de urmarit (stai sa te gandeste de ce ai face o impartire cand vine vorba de factorial)
  • Codul e mai lent, compilatorul ajungand sa insereze idiv, fiind cunoscut ca impartirea e una din cele mai lente instructiuni
Dar eu n-am zis ca acea portiune de cod este optima , pentru cerintele tale. Poate pe tine nu te satisface , pe mine insa ma satisface doarece nu am cautat optimul la acest algoritm.
Pur si simplu l-am redactat dupa formula de videoclip si tinand cont de preferintele mele personale.

Apoi , daca si eu la randul meu vreau  sa optimez acel algoritm , insa dupa preferintele mele sa zicem, atunci pur si simplu il redactez direct in assembly
si in loc de impartire folosesc inmultirea fata  cu complementul fata de 2 , daca as vrea acest lucru.
Asa sunt eu.

Si daca chiar m-ar pasiona optimizari pana la sange ,atunci as lua cartea asta
https://www.amazon.c...25537407&sr=8-1 si  studia-o intens.
sau as relua cursurile din faculta

#21
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,440
  • Înscris: 10.08.2005
pardon
Optim inseamna ca algoritmul ruleaza in ecartul de resurse cum il doresc eu si ca lizibiliatea codului este asa cum doresc eu, programator

lizibilitatea este cum doreste echipa

#22
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,236
  • Înscris: 24.02.2007
In echipa, sau la interviu, o astfel de atitudine nu e chiar benefica.

#23
navistar_eagle

navistar_eagle

    Member

  • Grup: Members
  • Posts: 958
  • Înscris: 16.11.2017

 MarianG, on 31 decembrie 2017 - 14:14, said:

for -  pentru un interval (pornind de la ..), daca se indeplineste o  conditie,  pas (incement / decrement)
while - cat timp se indeplineste o conditie
for poate fi scris si ca o bucla while :
initalizare contor;
while (testare conditie) {
 //cod executie

incrementare contor
}


 MarianG, on 31 decembrie 2017 - 14:22, said:

pardon
Optim inseamna ca algoritmul ruleaza in ecartul de resurse cum il doresc eu si ca lizibiliatea codului este asa cum doresc eu, programator

lizibilitatea este cum doreste echipa
Pai un programator lucreaza intr-o echipa ca doar n-o lucreaza singur.

 dani.user, on 31 decembrie 2017 - 14:31, said:

In echipa, sau la interviu, o astfel de atitudine nu e chiar benefica.
Ce atitudine ?

#24
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,440
  • Înscris: 10.08.2005

 navistar_eagle, on 31 decembrie 2017 - 14:34, said:

for poate fi scris si ca o bucla while :
vezi pagina precedenta

#25
navistar_eagle

navistar_eagle

    Member

  • Grup: Members
  • Posts: 958
  • Înscris: 16.11.2017

 MarianG, on 31 decembrie 2017 - 14:44, said:

vezi pagina precedenta
oare ce assemblerul ce parere are ? daca scrii aceiasi bucla fie in for fie in while ?
trebuie intrebat assemblerul nu pagina precedenta.

#26
MarianG

MarianG

    be that as it may

  • Grup: Moderators
  • Posts: 31,440
  • Înscris: 10.08.2005
tocmai ce postasem codul cu o bucla while

Edited by MarianG, 31 December 2017 - 15:16.


#27
Mosotti

Mosotti

    Geniu umil

  • Grup: Senior Members
  • Posts: 33,295
  • Înscris: 21.04.2004

 MarianG, on 31 decembrie 2017 - 14:22, said:

pardon
Optim inseamna ca algoritmul ruleaza in ecartul de resurse cum il doresc eu si ca lizibiliatea codului este asa cum doresc eu, programator

lizibilitatea este cum doreste echipa
Yeap. Lizibilitatea n-are nici o treaba cu optimizarea. Optimizarea inseamna sa obtii rezultate mai bune/mai precise, in timp mai scurt si/sau cu resurse mai putine, in functie de caz. Ultimul lucru pe care vrei sa-l faci cind "optimizezi" e sa faci un algoritm sa dureze mai mult, doar ca sa fie codul mai frumos :w00t:

Optimizarea este un lucru obiectiv si masurabil, lizibiliatea este o chestie subiectiva si de multe ori chiar o fitza debila, cind e dusa la extrem, vezi chestiile de genu "clean code", unde tre sa ai jde mii de clase si functii cu cite maxim 5 instructiuni, ca vezi doamne e mai lizibil :first:

#28
navistar_eagle

navistar_eagle

    Member

  • Grup: Members
  • Posts: 958
  • Înscris: 16.11.2017

 Mosotti, on 03 ianuarie 2018 - 10:05, said:

Yeap. Lizibilitatea n-are nici o treaba cu optimizarea.
Daca timpul pierdut  pentru  a citi la prima vedere  un cod vechi de 2 ani, nu inseamna bani pierduti, atunci nu are.
Insa contrar,  are legatura.
Si se pare ca noi nu suntem singurii care folosim acest mindset:
http://va.lent.in/op...dability-first/

Note bene:
Developers spend most of their​ productive time reading code, not writing it: debugging, checking commits done by others, learning new libraries, etc.
(productive time ==  aka money)

Quote

Optimizarea inseamna sa obtii rezultate mai bune/mai precise, in timp mai scurt si/sau cu resurse mai putine, in functie de caz. Ultimul lucru pe care vrei sa-l faci cind "optimizezi" e sa faci un algoritm sa dureze mai mult, doar ca sa fie codul mai frumos Posted Image
Si ultimul rand pe care vrei sa-l faci atunci cand te uiti pe un cod vechi de 2 ani , nefacut de tine, unde s-ar putea ca programatorul sa fii plecat, este sa pierzi 2 saptamani pentru a vedea ce face exact acel cod si ce efecte secundare ar avea daca ar fii  sa fie modificat fie cuplat cu munca ta
Dar acest lucru, conteaza doar daca timp = = bani , altfel nu are rost

Edited by navistar_eagle, 03 January 2018 - 11:19.


Anunturi

Chirurgia spinală minim invazivă Chirurgia spinală minim invazivă

Chirurgia spinală minim invazivă oferă pacienților oportunitatea unui tratament eficient, permițându-le o recuperare ultra rapidă și nu în ultimul rând minimizând leziunile induse chirurgical.

Echipa noastră utilizează un spectru larg de tehnici minim invazive, din care enumerăm câteva: endoscopia cu variantele ei (transnazală, transtoracică, transmusculară, etc), microscopul operator, abordurile trans tubulare și nu în ultimul rând infiltrațiile la toate nivelurile coloanei vertebrale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate