Random brojevi u C# nisu nimalo random

poruka: 99
|
čitano: 17.639
|
moderatori: Lazarus Long, XXX-Man, vincimus
+/- sve poruke
ravni prikaz
starije poruke gore
14 godina
offline
Random brojevi u C# nisu nimalo random

Ovaj kod:

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Test
{
  class Program
  {
    static void Main(string[] args)
      {
          for (int i = 0; i < 6; i++)
          {
            Random randomizer = new Random();
            int random = randomizer.Next(4);
            Console.WriteLine(random);
          }
          Console.ReadKey(true);
        }
    }
}

 

Ispiše na ekran šest istih brojeva. Dakle ovaj randomizer izbaci šest svaki put. Zašto i kako to sredim?

Poruka je uređivana zadnji put pet 11.5.2012 23:15 (King of Games).
Moj PC  
0 0 hvala 0
15 godina
offline
Random brojevi u C# nisu nimalo random

Da primjetio sam nešto slično, u C-u, radili smo na satu nekakav jednostavan zadatak sa random brojevima od 0-9, i 7 bi izbacio rijetko, ako ikad uopće :D

 
0 0 hvala 1
16 godina
offline
Re: Random brojevi u C# nisu nimalo random
Kreiraj random objekt samo na pocetku programa.
12 godina
protjeran
offline
Random brojevi u C# nisu nimalo random
 
0 0 hvala 1
14 godina
neaktivan
offline
Re: Random brojevi u C# nisu nimalo random
King of Games kaže...

Ovaj kod:

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Test
{
  class Program
  {
   static void Main(string[] args)
    {
      for (int i = 0; i < 6; i++)
      {
       Random randomizer = new Random();
       int random = randomizer.Next(4);
       Console.WriteLine(random);
      }
      Console.ReadKey(true);
     }
   }
}

 

Ispiše na ekran šest istih brojeva. Dakle ovaj randomizer izbaci šest svaki put. Zašto i kako to sredim?

Kada kreiraš Random objekt sa istim seedom on će generirati isti slijed brojeva.

Kada ne navedeš seed prilikom kreiranja objekta on uzima sistemsko vrijeme, ali pošto ga ti kreiraš u petlji seed se ne stigne promijeniti i ti dobivaš svaki puta isti slijed brojeva.

Najjednostavnije rješenje je da Random objekt kreiraš jednom i onda dohvačaš random vrijednosti iz njega.

 

Ne znam koliko ti trebaju biti slučajni ti brojevi, ali trebao bi imati na umu da će ova funkcija generirati slučajne brojeve koji i nisu baš toliko slučajni(iako će biti dovoljno za većinu praktičnih problema), pa za korištenje gdje je to bitno trebao bi uzeti neki malo bolji algoritam, npr. blum blum shub.

16 godina
protjeran
offline
Random brojevi u C# nisu nimalo random

Izbaci  Random randomizer = new Random(); iz petlje i možda da koristiš

Random rnd = new Random(DateTime.Now.Millisecond);

ili nešto slično.  

Programko http://programko.bloger.hr
 
2 0 hvala 1
16 godina
neaktivan
offline
Random brojevi u C# nisu nimalo random

Naravno da nisu slucajni vec su pseudoslucajni. Racunala su deterministicki sustavi gdje nesto kao "prava slucajnost" ne postoji, ali se moze raznim algoritmima prilicno dobro imitirati. To je pseudoslucajnost. Ovo su inace prilicno bitne stvari za kriptografiju recimo.

 

Ne znam za C#, ali vrlo vjerojatno postoji neka metoda ili klasa za generiranje pseudoslucajnih brojeva, pa joj daj za seed neki slucajan seed, kao sto je primjerice vrijeme.

 

EDIT: Tek sam sad vidio ostatak postova.

C provides a programmer with more than enough rope to hang himself. C++ provides a firing squad, blindfold and last cigarette.
Poruka je uređivana zadnji put sub 12.5.2012 17:05 (1domagoj1).
 
3 0 hvala 2
14 godina
offline
Random brojevi u C# nisu nimalo random

Da, znao sam da je vrjeme seed ali sam se tek nakon pisanja posta sjetio da se to vrjeme ne uspje mjenjati. To objenšnjava i jedan drugi fenomen: kad sam debuggao i vrtio petlju jako sporo onda je bilo ok. It all makes sense now.

Rješenje koje sam odabrao bit će da maknem randomizer izvan funkcija koje koriste random brojeve i stavim ga u glavni program.

Moj PC  
2 1 hvala 0
11 godina
protjeran
offline
Random brojevi u C# nisu nimalo random

Besmislice....

Problem je u tome sto moras samo zaustaviti

Napisao sam ti kod, samo da razumijes princip.

 

For i As Integer = 0 To 10
            Console.WriteLine(New Random().Next(0, 10))
        Next
        Console.Read()

 

 

 

 

Dobili smo kao output:

6
4
4
4
4
4
4
4
4
4
4

 

 

 

 

 

No, kada "zauspavamo" ForEach na par milisekundi, dobiti ćemo uz ovaj kod:

For i As Integer = 0 To 10
            Console.WriteLine(New Random().Next(0, 10))
            System.Threading.Thread.Sleep(20)
        Next
        Console.Read()

 

ovo:

0
0
4
6
9
3
5
3
7
9
2

 

 

 

 

 

Pogledaj jos ovo malo:

http://msdn.microsoft.com/en-us/library/system.threading.aspx

 
1 12 hvala 0
15 godina
neaktivan
offline
Random brojevi u C# nisu nimalo random

Lol, ovo je glupost kakve nema!

Naravno da ce ti Random bacati isti broj u tako kratko vrijeme, kad je seedan vremenom a generator alociras iznova uvijek :-D

Umjesto ovog debilnog hacka sa spavanjem u threadu, alociraj Random van loopa i samo zovi .next().

 

Btw, alokacija u loopu je besmislica sama po sebi.

 

 

 

Random rnd = New Random(System.currentTime()); // Nemam dume kako se pravilno inicijalizira random, pa je ovo vise pseudokod

For i As Integer = 0 To 10

Console.WriteLine(rnd.Next(0, 10))

Next

Console.Read()

 

 

 

We are the ones that will open your mind, leave the weak and the haunted behind
Poruka je uređivana zadnji put pon 14.5.2012 18:09 (Deus ex machina).
 
6 1 hvala 0
11 godina
protjeran
offline
Re: Random brojevi u C# nisu nimalo random
Deus ex machina kaže...

Lol, ovo je glupost kakve nema!

Naravno da ce ti Random bacati isti broj u tako kratko vrijeme, kad je seedan vremenom a generator alociras iznova uvijek :-D

Umjesto ovog debilnog hacka sa spavanjem u threadu, alociraj Random van loopa i samo zovi .next().

 

Btw, alokacija u loopu je besmislica sama po sebi.

 

 

 

Random rnd = New Random(System.currentTime()); // Nemam dume kako se pravilno inicijalizira random, pa je ovo vise pseudokod

For i As Integer = 0 To 10

Console.WriteLine(rnd.Next(0, 10))

Next

Console.Read()

 

 

 

 

Malo objasnjenja:

 1.Koristio si pola C#, te pola VB.Net

 2.Jel ti razumijes kako radi "Random". Koji si ti lik. Koristis trenutno vrijeme da bi odredio "Seed";

 3.Kod ti neće raditi kada ti program bude radio procese koji koriste puno memorije. Nisi razmisljao o tome.

 

 

I jos nešto, nemoj nekome zvati metode debilnima jer oćito nemaš pojma kako kod radi.

Hvala

Poruka je uređivana zadnji put pon 14.5.2012 18:20 (gorky96).
16 godina
offline
Re: Random brojevi u C# nisu nimalo random

Jos davno sam dosao do istog zakljucka. 90% bugova se moze rjesit ubacivanjem Sleepa na strateske pozicije... A hardware napreduje, pa nek useri kupuju novi hw, tko ih jeb....

 

{#}

 

Those damn scientist people have been promising global warming for years now. But when I go outside it's still very cold. I want the global warming like they promised NOW! I hate being cold...
Poruka je uređivana zadnji put pon 14.5.2012 18:41 (SupremeCommander).
11 godina
protjeran
offline
Re: Random brojevi u C# nisu nimalo random
SupremeCommander kaže...

Jos davno sam dosao do istog zakljucka. 90% bugova se moze rjesit ubacivanjem Sleepa na strateske pozicije... A hardware napreduje, pa nek useri kupuju novi hw, tko ih jeb....

 

{#}

 

 

Tocno. Isto kao sto mozes izvrisiti/pokrenuti .exe datoteku pri otvaranju projekta (.sln datoteke).

Naravno da ce ti Random bacati isti broj u tako kratko vrijeme, kad je seedan vremenom a generator alociras iznova uvijek :-D
14 godina
neaktivan
offline
Re: Random brojevi u C# nisu nimalo random
gorky96 kaže...

Malo objasnjenja:

 1.Koristio si pola C#, te pola VB.Net

 2.Jel ti razumijes kako radi "Random". Koji si ti lik. Koristis trenutno vrijeme da bi odredio "Seed";

 3.Kod ti neće raditi kada ti program bude radio procese koji koriste puno memorije. Nisi razmisljao o tome.

 

 

I jos nešto, nemoj nekome zvati metode debilnima jer oćito nemaš pojma kako kod radi.

Hvala

 

1. Koliko vidim čovjek ti je lijepo napomenuo da je to više pseudokod

2. On očito razumije kako to radi, za razliku od tebe. Znaš li ti što je to uopće seed?

3. Ajd' molim te objasni ovo, jer ovo ti je možda najveća glupost u ovom nizu

 

Ako itko ovjde nema pojma o ćemu priča, onda si to ti. Bolje da si pročitaš ono što ti je Deus napisao, i štutiš, možda i naučiš nešto.

15 godina
odjavljen
offline
Re: Random brojevi u C# nisu nimalo random
gorky96 kaže...

Problem je u tome sto moras samo zaustaviti

  ...

No, kada "zauspavamo" ForEach na par milisekundi, dobiti ćemo uz ovaj kod:


            System.Threading.Thread.Sleep(20) 

Zbog ovoga bih te prvo ubio kao developer, a onda oživio da te mogu ponovno ubiti kao korisnik!

 

gorky96 kaže...

Kod ti neće raditi kada ti program bude radio procese koji koriste puno memorije. Nisi razmisljao o tome.

Jedini razlog zašto nisam kliknuo na prijavi na jednom od tvojih sljedećih postova u kojima si bezobrazan prema drugima, a u isto vrijeme izbjegavaš dati odgovor je zbog toga što me zanima što si mislio pod ovim!

Big wheel keep on turning, Proud Mary keep on burning, Trolling, trolling, trolling on the river.
15 godina
neaktivan
offline
Random brojevi u C# nisu nimalo random

Zahvaljujem F1-IVI na cisti ovako javno, jer ga jadnog toliko siluju s PM-ovima da su mu stalno ugaseni!

 

Samo kratki rezime iz izgubljenih poruka:

1. Greska u mojem kodu je best-practices greska. Inace je losa navika seedati generator s vremenom, jer to znaci da ga vise ne kontroliramo. Kod bez kontrole je tezak za debug, i skoro nemoguc za testiranje. Uvijek je pozeljno imati fixni seed, ili makar imati nacin kako tocno reproducirati 'random' seed. Vrijeme je dobro za brze trikove, ali lose za AAA aplikacije.

 

2. TBH, moj 3D engine ima concurrency barrier na kojem threadovi cekaju dok se update cycle ne zavrsi, prije nego pocne sortiranje za render {#} Kontrolirano spavam!!!

We are the ones that will open your mind, leave the weak and the haunted behind
 
0 1 hvala 0
14 godina
neaktivan
offline
Re: Random brojevi u C# nisu nimalo random
Deus ex machina kaže...

Zahvaljujem F1-IVI na cisti ovako javno, jer ga jadnog toliko siluju s PM-ovima da su mu stalno ugaseni!

 

Samo kratki rezime iz izgubljenih poruka:

1. Greska u mojem kodu je best-practices greska. Inace je losa navika seedati generator s vremenom, jer to znaci da ga vise ne kontroliramo. Kod bez kontrole je tezak za debug, i skoro nemoguc za testiranje. Uvijek je pozeljno imati fixni seed, ili makar imati nacin kako tocno reproducirati 'random' seed. Vrijeme je dobro za brze trikove, ali lose za AAA aplikacije.

 

2. TBH, moj 3D engine ima concurrency barrier na kojem threadovi cekaju dok se update cycle ne zavrsi, prije nego pocne sortiranje za render {#} Kontrolirano spavam!!!

 

U principu se slažem s tobom što se tiče vremenskih seedova, ali ipak postoje primjene koje zahtjevaju da random broj bude stvarno random(kolik to može biti), npr. u enkripciji gdje implementacija algoritma zavisi o "kvaliteti" random generatora i nemogućnosti dobivanja predvidljivih rezultata.

15 godina
neaktivan
offline
Re: Random brojevi u C# nisu nimalo random
workload kaže...

U principu se slažem s tobom što se tiče vremenskih seedova, ali ipak postoje primjene koje zahtjevaju da random broj bude stvarno random(kolik to može biti), npr. u enkripciji gdje implementacija algoritma zavisi o "kvaliteti" random generatora i nemogućnosti dobivanja predvidljivih rezultata.

U tom slucaju, extractas interface i nazoves ga SeedProvider. Ostatak je jasan.

Vrijeme kao seed za enkripciju nije dovoljno dobar... vecinom se koristi random input - pomaci misha, tipkanje, etc... uglavnom sve sto prolazi kroz sabirnicu.

 

U oba slucaja - nemogucnost ponavljanja tocnog slijeda dogadjaja sa istim podacima = propast. Govorim vam iz iskustva, mozete mi ne vjerovati na rijec.

Moj cisti primjer je bio kalkulacija konkurentne to-hit formule, koja je u srzi imala random seedan vremenom. Proslo je dugo, dugo vremena kopanja po formuli dok mi nije puko film i odlucio sam maknuti seed i seedati sa 1 da vidim sta ce biti. Onda je postalo jasnije sto se tocno dogadja (ne-sinkronizirani pristup random generatoru).

We are the ones that will open your mind, leave the weak and the haunted behind
14 godina
neaktivan
offline
Re: Random brojevi u C# nisu nimalo random
Deus ex machina kaže...
U oba slucaja - nemogucnost ponavljanja tocnog slijeda dogadjaja sa istim podacima = propast. Govorim vam iz iskustva, mozete mi ne vjerovati na rijec.

Pa to ima smisla. Random i pseudorandom generatori u sustav uvode nesigurnost koja unistava determinizam, sto jako otezava ili cak posve sprijecava reproduciranje istih stanja, a time i ucinkovito debuggiranje.

Oscar-Mike-Golf Whiskey-Tango-Foxtrot
16 godina
protjeran
offline
Random brojevi u C# nisu nimalo random

Pa dobro ljudi, mislim da pokretač teme ide u srednju školu i pati se s osnovama, samo želi da mu generator proradi, a vi odmah u napredne filozofije rnd generatora i sinhronizaciju thredova.{#}

Programko http://programko.bloger.hr
 
4 0 hvala 0
14 godina
neaktivan
offline
Re: Random brojevi u C# nisu nimalo random
Deus ex machina kaže...

U tom slucaju, extractas interface i nazoves ga SeedProvider. Ostatak je jasan.

Vrijeme kao seed za enkripciju nije dovoljno dobar... vecinom se koristi random input - pomaci misha, tipkanje, etc... uglavnom sve sto prolazi kroz sabirnicu.

 

U oba slucaja - nemogucnost ponavljanja tocnog slijeda dogadjaja sa istim podacima = propast. Govorim vam iz iskustva, mozete mi ne vjerovati na rijec.

Moj cisti primjer je bio kalkulacija konkurentne to-hit formule, koja je u srzi imala random seedan vremenom. Proslo je dugo, dugo vremena kopanja po formuli dok mi nije puko film i odlucio sam maknuti seed i seedati sa 1 da vidim sta ce biti. Onda je postalo jasnije sto se tocno dogadja (ne-sinkronizirani pristup random generatoru).

 

Poanta je  da je ponekad slučajnost i nemogućnost determinizma  potreba, istina osim enkripcije ne mogu se sjetiti više niti jednog primjera.

Naravno da vrijeme nije dobar seed za enkripciju(kao ni .net-ov random generator), ali pošto se proteže kroz temu spomenuo sam njega.

Programko kaže...

Pa dobro ljudi, mislim da pokretač teme ide u srednju školu i pati se s osnovama, samo želi da mu generator proradi, a vi odmah u napredne filozofije rnd generatora i sinhronizaciju thredova.{#}

Uff da....  lako zabrijem{#}

 

Isprike pokretaču teme.

16 godina
protjeran
offline
Random brojevi u C# nisu nimalo random

Monte Carlo algoritmi, umjetna inteligencija, bruteforce ispitivanje vjerovatnosti, neki rayTraicing algoritmi, statistika.... ima toga{#}

Programko http://programko.bloger.hr
 
0 0 hvala 0
15 godina
neaktivan
offline
Re: Random brojevi u C# nisu nimalo random
Programko kaže...

Pa dobro ljudi, mislim da pokretač teme ide u srednju školu i pati se s osnovama, samo želi da mu generator proradi, a vi odmah u napredne filozofije rnd generatora i sinhronizaciju thredova.{#}

Pardoncek, samo branim svoju tezu da je prediktivni code a-must za kvalitetnog developera :-)

We are the ones that will open your mind, leave the weak and the haunted behind
14 godina
offline
Random brojevi u C# nisu nimalo random

A da ja dam svoje misljenje?

 

Spavanje kako bi se vremenski seed obnovio je očito glupa ideja, a jasno je i zašto. Neshvaćam kad bi to ikad bilo bolje rješenje od onog drugog.

 

Inače ja idem tek uskoro krećem u srednju školu, ali mi je jako drago da su ova dvojica to podjelili. Uvjek je ljepo dobiti neki savjet, a i uvjek težim da kod bude čim bolji. Bolje da odmah sad počnem pisati dobar kod nego kasnije. No savjet definitivno neću poslušati jer mi ovo treba za igru. No ako nešto pođe po krivu imat ću to na umu tjekom debugginga.

 

 

Poruka je uređivana zadnji put uto 15.5.2012 22:15 (King of Games).
Moj PC  
0 0 hvala 0
14 godina
neaktivan
offline
Re: Random brojevi u C# nisu nimalo random
King of Games kaže...

A da ja dam svoje misljenje?

 

Spavanje kako bi se vremenski seed obnovio je očito glupa ideja, a jasno je i zašto. Neshvaćam kad bi to ikad bilo bolje rješenje od onog drugog.

 

Inače ja idem tek uskoro krećem u srednju školu, ali mi je jako drago da su ova dvojica to podjelili. Uvjek je ljepo dobiti neki savjet, a i uvjek težim da kod bude čim bolji. Bolje da odmah sad počnem pisati dobar kod nego kasnije. No savjet definitivno neću poslušati jer mi ovo treba za igru. No ako nešto pođe po krivu imat ću to na umu tjekom debugginga.

 

 

 

Nije problem samo sleep, već i kreiranje objekta unutar petlje, to treba uvijek izbjegavati(osim ako nema izričite potrebe).

U tvom primjeru dovoljan je jedan objekt koji će ti generirati random brojeve, nema potrebe za alokacijom novog objekta za svaki broj.

Bespotrebna alokacija uzrokuje zapunjavanje memorije, što povlači pozivanje garbage collectora koji je veliki gutač resursa.

14 godina
offline
Re: Random brojevi u C# nisu nimalo random
workload kaže...
King of Games kaže...

A da ja dam svoje misljenje?

 

Spavanje kako bi se vremenski seed obnovio je očito glupa ideja, a jasno je i zašto. Neshvaćam kad bi to ikad bilo bolje rješenje od onog drugog.

 

Inače ja idem tek uskoro krećem u srednju školu, ali mi je jako drago da su ova dvojica to podjelili. Uvjek je ljepo dobiti neki savjet, a i uvjek težim da kod bude čim bolji. Bolje da odmah sad počnem pisati dobar kod nego kasnije. No savjet definitivno neću poslušati jer mi ovo treba za igru. No ako nešto pođe po krivu imat ću to na umu tjekom debugginga.

 

 

 

Nije problem samo sleep, već i kreiranje objekta unutar petlje, to treba uvijek izbjegavati(osim ako nema izričite potrebe).

U tvom primjeru dovoljan je jedan objekt koji će ti generirati random brojeve, nema potrebe za alokacijom novog objekta za svaki broj.

Bespotrebna alokacija uzrokuje zapunjavanje memorije, što povlači pozivanje garbage collectora koji je veliki gutač resursa.

  Ok. Neću to više raditi. Inače uvjek kada se neki objekt mjenja svaki krug u petlji, ja ga alociram u petlji. To je u C++-u i bilo ok jer lokalne variable traju do kraja bloka. Valjda sam zaboravio da je C# drugačiji jezik što se toga tiče.

15 godina
neaktivan
offline
Re: Random brojevi u C# nisu nimalo random
King of Games kaže...

  Ok. Neću to više raditi. Inače uvjek kada se neki objekt mjenja svaki krug u petlji, ja ga alociram u petlji. To je u C++-u i bilo ok jer lokalne variable traju do kraja bloka. Valjda sam zaboravio da je C# drugačiji jezik što se toga tiče.

To nije OK ni u C++u, odnosno nije OK nigdje. Alokacija je alokacija, potpuno je nebitno da li je na stacku ili na heapu, i da li ce to pocistiti garbage collector, ti na ruke, ili stack pointer.

 

Alokacija je glavni resource hog u generalno 90% softwarea. Pazljivo rukovanje memorijom je abeceda dobrog kodiranja, i uopce ne spada u premature optimizaciju. Nekad moras alocirati dosta malih temp objekata (npr. vektori, pogotovu unutar non-mutating matematickih izraza), onda je to OK. Kasnije testiras pa vidis da ako ti te alokacije uzimaju previse vremena, prealociras u neki pool 100 000 objekata i onda poolas/resetiras objekte.

We are the ones that will open your mind, leave the weak and the haunted behind
14 godina
neaktivan
offline
Re: Random brojevi u C# nisu nimalo random
King of Games kaže...

  Ok. Neću to više raditi. Inače uvjek kada se neki objekt mjenja svaki krug u petlji, ja ga alociram u petlji. To je u C++-u i bilo ok jer lokalne variable traju do kraja bloka. Valjda sam zaboravio da je C# drugačiji jezik što se toga tiče.

 

To pogotovo u C++ nije OK.

Istina, lokalne varijable traju do kraja bloka, ali u C++ sva memorija koju alociraš sa new ostaje alocirana sve dok je ne "ručno" ne oslobodiš sa delete.

 

Tako u ovom tvom primjeru da si ga napisao u C++ sva memorija koju si alocirao unutar petlje bi ostala zauzeta cijelim trajanjem programa. U C# postoji GC koji će se pobrinuti za memoriju koja je alocirana a nije više potrebna, ali GC ima i svoju cijenu....

16 godina
neaktivan
offline
Random brojevi u C# nisu nimalo random

Što manje znanja - više bezobrazluka.

Tip je inače ovu foru sa Thread.Sleep() uzeo sa MSDN-a, a tamo je u stvari taj primjer korišten da pokaže da defaultni konstruktor Random klase Random() koristi sistemsko vrijeme, pa su napravili 2 sekunde delay-a kako bi pokazali da se dobije različit niz brojeva.

Naravno, u praksi je to besmisleno raditi, stavi se jedan seed prije petlje i generira sekvenca u petlji.

 

A to da brojevi nisu nimalo random - i više si u pravu nego misliš, ovaj seed daje predviljiv niz brojeva.

Upravo zato C# ima TripleDES klasu, koju koristi za kriptiranje jer bi Random bilo lako razbiti. dovoljno je pogoditi tic seed generatora.

Ali za nas koji ne radimo casino ili slične aplikacije, Random je sasvim dovoljan. 

 

Uglavnom, tip je potpuno pogrešno shvatio zašto su na MSDN uptrijebili Thread.Sleep(), a u stvari oni drugi način nisu imali za pokazati da različiti seed-ovi daju iste sekvence u istom sistemskom vremenu, a različite sekvence u drugom sistemskom vremenu, pa je još uz to napao profija.{#}

 

Poruka je uređivana zadnji put čet 17.5.2012 21:46 (Floki).
 
3 0 hvala 0
14 godina
offline
Random brojevi u C# nisu nimalo random

Dobro, pustite sad C++.

 

No ako alokacije zauzimaju previše resursa, onda imam još jedno pitanje: dali je ok kad imam neku vrijednost do koje se teže dođe, dakle puno djeljenja, množenja, pozivanja metoda itd, razbiti tu vrijednost u manje variable, tako da ta kobasica od formule za vrijednost bude ljepo čitljiva na jeziku razumljivom običnom čovjeku? Mislim, ovo je samo primjer, no općenito, male apstrakcije kao umjesto da pišeš x / 2 imaš variablu polaX koja ima vrjednost x / 2. Onda netreba više razmišljati onih pola stotinke što je x / 2, nego samo čitaš. Ja to uvjek radim, no moglo bi biti resource heavy. Što vi kažete?

Moj PC  
0 0 hvala 0
Nova poruka
E-mail:
Lozinka:
 
vrh stranice