Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

(Interesantan) problem

[es] :: Art of Programming :: (Interesantan) problem

[ Pregleda: 3722 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Kurt2
SCG

Član broj: 79835
Poruke: 153
..nis1-nis.customer.sbb.co.yu.

ICQ: 156109951


+9 Profil

icon (Interesantan) problem07.01.2006. u 14:24 - pre 221 meseci
Imao sam sledeći problem: želeo sam da napravim niz od prvih n brojeva (na primer, od 0 do 9, a n je 10), ali tako da oni budu raspoređeni po slučajnom izboru. Padale su mi na pamet mnoge varijante rešenja (koje nisu bile dovoljno dobre), ali sam se na kraju odlučio za jedno "neinteligentno" rešenje, ali koje završava posao, a to je da za niz koji ima n elemenata pustim petlju koja bi se vrtela na primer 3*n puta pri čemu bi se u svakom prolazu izabrale dve pozicije po slučajnom izboru i njima zamenile vrednosti/mesta. To je za mene bilo dovoljno dobro, a mene interesuje postoji li bolje rešenje?
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+710 Profil

icon Re: (Interesantan) problem07.01.2006. u 14:52 - pre 221 meseci
Code:

1. napraviš niz a[n] i napuniš ga ciframa redom 0 do n-1
2. for i:= 0 to n-1:
2. 1. nađeš slučajni broj j između i i n-1, inkluzivno
2. 2. zameniš vrednosti a[i] i a[j]

To bi bilo to.

[Ovu poruku je menjao jablan dana 07.01.2006. u 15:55 GMT+1]
 
Odgovor na temu

Kurt2
SCG

Član broj: 79835
Poruke: 153
..nis1-nis.customer.sbb.co.yu.

ICQ: 156109951


+9 Profil

icon Re: (Interesantan) problem07.01.2006. u 15:19 - pre 221 meseci
Pitanje je bilo da li postoji neki drugi način?
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+710 Profil

icon Re: (Interesantan) problem07.01.2006. u 15:49 - pre 221 meseci
Način koji sam ja napisao nije isti kao onaj koji si ti predložio, navedenim rešenjem dobiješ savršeno izmešan niz, uz najmanju moguću složenost. Šta bi ti još?
 
Odgovor na temu

Kurt2
SCG

Član broj: 79835
Poruke: 153
..nis1-nis.customer.sbb.co.yu.

ICQ: 156109951


+9 Profil

icon Re: (Interesantan) problem07.01.2006. u 16:14 - pre 221 meseci
Izvini, nisam obratio pažnju. Samo mi kaži šta znači inkluzivno?
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+710 Profil

icon Re: (Interesantan) problem07.01.2006. u 17:10 - pre 221 meseci
Citat:
Kurt2: Samo mi kaži šta znači inkluzivno?

Uključujući i granice, u ovom slučaju i i n-1.

http://www.vokabular.org/?search=inkluzivan
 
Odgovor na temu

Kurt2
SCG

Član broj: 79835
Poruke: 153
..nis1-nis.customer.sbb.co.yu.

ICQ: 156109951


+9 Profil

icon Re: (Interesantan) problem07.01.2006. u 17:41 - pre 221 meseci
A jel postoji funkcija koja vraća slučajan broj u okviru postavljenog opsega? Ja samo znam za onu koja vraća random od 0 do n-1 (ako je prosleđeno n).
 
Odgovor na temu

jablan

Član broj: 8286
Poruke: 4541



+710 Profil

icon Re: (Interesantan) problem07.01.2006. u 18:24 - pre 221 meseci
Citat:
Kurt2: A jel postoji funkcija koja vraća slučajan broj u okviru postavljenog opsega? Ja samo znam za onu koja vraća random od 0 do n-1 (ako je prosleđeno n).

?!

Ajde razmisli kako možeš da dobiješ slučajan broj unutar opsega [i, j] ako raspolažeš funkcijom koja ti vraća slučajan broj unutar opsega [0, j-i].
 
Odgovor na temu

Goran Arandjelovic
Beograd

Član broj: 29116
Poruke: 387
*.57.EUnet.yu.



+9 Profil

icon Re: (Interesantan) problem07.01.2006. u 18:31 - pre 221 meseci
Verovatno će ti funkcija rand() biti dovoljna... A evo ti nalaženje slučajnog broja sa određenim granicama...

Code:

int main()
{
  int x;
  int g = 10; /* gornja granica */
  int d = 4; /* donja granica */
  x = rand()%(g-d) + d;
}



@jablan
Izvini... nisam video tvoj post.. olakšao sam mu mučenje :)

[Ovu poruku je menjao Goran Arandjelovic dana 07.01.2006. u 19:32 GMT+1]
 
Odgovor na temu

Kurt2
SCG

Član broj: 79835
Poruke: 153
..nis1-nis.customer.sbb.co.yu.

ICQ: 156109951


+9 Profil

icon Re: (Interesantan) problem07.01.2006. u 18:47 - pre 221 meseci
@Goran
Ok, to nisam znao.
@Jablan
Zašto sve ovo pitam:
Radio sam neku prezentaciju u Flešu. U hodu sam učio Actionscript. Znao sam da postoji random funkcija u obliku koji sam naveo, ništa više. Tim alatom sam pokušao da dobijem prethodno spomenuti niz. Goranov kod mi ni u snu nije pao na pamet. Na kraju sam uradio kako sam i ispričao. Pitao sam te za random u okviru opsega, jer sam pretpostavio da ti znaš bolje od mene celu problematiku (jer sam ja ipak početnik), pa sam zajedno sa tim pretpostavio da možda ti znaš za neki random za koji ja ne znam.
Btw pade mi napamet i ono da se napiše kod za određivanje većeg od dva broja bez if naredbe... ali to znam... a tu se treba setiš... ništa više. Kao i za kod koji je Goran napisao.
 
Odgovor na temu

@zrael


Član broj: 80614
Poruke: 21
*.adsl.net.t-com.hr.



Profil

icon Re: (Interesantan) problem10.01.2006. u 00:09 - pre 221 meseci
postoji jako puno načina kako možeš dobiti random niz. U c u imaš srand() funkiciju koja ti obavlja posao cijeli. Postoji metoda, nisam si sigurankako ide točno, da se pomnože dva 6-znamenkasta odabrana x i y broja te se korjenuje dobiveni. zatim se dobiveni ponovo množi sa y, korjenuje, itd,.....
možeš koristiti više dretvi koje su istog priority-a tako da se naizgled po defaultu izvršavaju. Po meni je to vjerojatno najbolji način pošto ne možeš predvidjeti kakvi su sve procesi aktivni na kompu.
Imaš jako puno metoda. sve ti ovisi kako ćeš koje matematičke metode koristiti. često se koristi. Tu ti od velike pomoći može biti korienovanje, modularno dijeljenje, logaritmiranje i sve ostale takve neke spaljene matematičke metode.
Također se često koristi i vrijeme i datum.
Ako ti je potrebno za neki mali programčić možeš slijedeće naprevit.
Prepusti korisniku koji pokreće program 5 ili koliko već sekundi da pomiće miš. Prema samim koordinatama cursora ili prema putanji ili bilo čime izračunaj slučajne brojeve. ili naprimjer isto to sa tipkovnicom.
Ako ćeš čitati knutha ili tako malo nabrijanije likove, možeš zaključiti da ne postoje savršeni slučani brojevi koji mogu izači iz kompa. To su ipak samo pseudoslučajni brojevi.
Jedini način bi bilo uključiti na neki način čovjeka.

Sad je opet pitanje koliko će i onda biti slučajni brojevi jer je čovjek ipak najsavršenije računalo do sad. Tu ti se onda javlja i biometrija, ali dobro, to nije sad tema za ovo.
 
Odgovor na temu

[es] :: Art of Programming :: (Interesantan) problem

[ Pregleda: 3722 | Odgovora: 10 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.