/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Sandsynligheds-/vægtnings-funktion m.m.
Fra : Kim Søvsø Pedersen


Dato : 01-02-02 10:15

Hej!

Jeg har brug for at lave en eller anden form for sandsynlighedsfunktion, men
er ikke helt sikker på hvordan jeg kan lave det.

Sagen er den, at jeg har en række grupper, som hver især har forskellig
vægtning (altså f.eks. at der er større chance for at ramme gruppe 1 end
gruppe 2). Jeg ved ikke helt hvordan det ville være smartest at lave, men
jeg kan selvfølgelig lave det med en fil, hvor hver gruppe er repræsenteret
af x antal tal. De grupper der skal have størst vægtning har så flere tal i
filen, end de grupper der ikke har så stor vægtning.

Eksempel.fil:
gruppe 1
gruppe 1
gruppe 1
gruppe 2
gruppe 3
gruppe 4

Jeg kunne så lave en random-funktion, som vælger et tilfældigt linienummer
mellem 1 og 6. Så må der vel være størst chance for at den vælger gruppe 1?

Er det måden at lave det på, eller er der nogen der kan finde på noget
smartere?

Jeg skal desuden kæde ovenstående vægtning sammen med noget "maks-antal fra
hver gruppe". Dvs. at hvis jeg f.eks. skal bruge 6 ting i alt, så må den
vælge maks 4 fra gruppe 1 og så skal resten være fra andre grupper. Det kan
vel også bare laves sådan, at hvis maks-antal for en grupper er nået, så
trækker den en ny tilfældig (men stadigvæk vægtet) ting fra en gruppe?

Mvh Kim

--
Please remove "REMOVE" in my e-mail address before replying.



 
 
Allan Ebdrup (02-02-2002)
Kommentar
Fra : Allan Ebdrup


Dato : 02-02-02 00:22

"Kim Søvsø Pedersen" <kim@kimpedersen.dk> wrote in message
news:3c5a5c58$0$253$ba624c82@nntp02.dk.telia.net...
> Hej!
>
> Jeg har brug for at lave en eller anden form for sandsynlighedsfunktion,
men
> er ikke helt sikker på hvordan jeg kan lave det.

Det kommer lidt an på hvad du vil lave, men en mulighed er:
Jeg antager at du har et array (kaldet A) med gruppernes vægtning, fx
A = (1,2,3,4,5,3,4,2,4)
Hvor en vægtning på 0 betyder at gruppen aldrig skal vælges.
a) Udregn summen af alle vægte (kaldet V)
b) brug random funktionen til at udregne et tilfældigt decimaltal mellem 0
og V (kaldet R) *
c) tage to temporære variabel t og i og udfør algoritmen:
i = 0
T = 0
do while T<R
T = T + A(i)
i = i+1
loop

Herefter skulle i gerne være indekset på den gruppe der er valgt, hvor den
første gruppe svarer til i=1.

Kig på det og biks noget kode sammen, så kan du jo prøve om det virker.

MVH
Allan Ebdrup, 10-4 ApS
Professionelt messageboard: http://www.aspfastforum.com/aspfastforum/

* R må ikke være 0 (nul) dvs. den skal ligge i intervalled ]0;V]

P.S. Koden er på ingen måde testet, den er bare rystet ud af ærmet, og det
vil jeg stærkt anbefale at du gør.



Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste