Random, Array, Rating

Random, Array, Rating

Innleggav pks » man 29.09.2008 23:01

Hallo.

Først er rimelig nybegynner, men lærer dog fort (mener jeg selv).

Sitter med et script, som skal valge ut random ting ut fra ei liste.

Sliter mer enn litt med dette.

Først: Jeg legger inn et tall på hvilket antall ting jeg ønsker. (denne er grei)
Så ut i fra svaret, skal jeg plukke så mange ting ut i fra en liste. Men, jeg liker en ting bedre enn andre, så hvis jeg skal plukke hundre ting, vil jeg at noen av tingene skal printes ut oftere. Altså en random funksjon, som ikke er helt random. Jeg ønsker å å ha med pris, siden totalen teller.

Så altså et array som kan se slik ut:
Volvo, 3, 100000;
Audi, 7, 200000;
VW, 5, 150000;
Opel, 1, 80000;

Så spørsmålene er mange.. Ta gjerne en ting ad gangen. I utgangspunktet er jeg grønn på random, array og det som evt trengs i tilegg.

På forhånd takk for tips, dette er mitt første inlegg på dev1 :)

Mvh

PK
medlem i 160 måneder
 

Re: Random, Array, Rating

Innleggav ak » lør 04.10.2008 13:15

Måten dette vanligvis løses på er tildele vekter. Hvis det er snakk om relativt få elementer, og du kan gjenbruke arrayen, er det kanskje enkleste å legge det rett inn statisk:

[0] - volvo
[1] - volvo
[2] - volvo
[3] - audi
[4] - audi
[5] - audi
[6] - audi
[7] - audi
[8] - audi
[9] - audi
.....

og så bruker du random for å gerere X mellom 0 og Z. (Du lagrer selvfølgelig en pointer, slik at størelsen på tabellen i de fleste tilfeller er overkommelig).

Vanligere, og med dyrere oppslag, er å definere intervaller,
[0] [max_verdi, int_representerer_bilmerke_1]
[1] [max_verdi, int_representerer_bilmerke_2]
[2] [max_verdi, int_representerer_bilmerke_3]

og så looper du gjennom denne arrayen til verdien du fikk fra ranom er lavere enn max_verdi, returner int_representerer_bilmerke_x. Bilmerkene / objektene har du antageligvis i en lignende array, hvor int_representerer_bilmerke_x er nøkkelen.

Administrator
Brukerens avatar
medlem i 204 måneder
 


Returner til C++



Hvem er i Forumene

Registrerte brukere: Google [Bot]