1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| Quintiq file version 2.0
| #parent: #root
| StaticMethod GetRandomIndex (
| Reals vector
| ) as Number
| {
| TextBody:
| [*
| totalweight := sum( vector, Elements, v, true, v );
| r := Real::Random(0.0, totalweight );
| i := -1; maxindex := vector.Size() - 1;
| if (maxindex >= 0 ) // check for empty set
| {
| cumulativesum := 0.0;
| while( i < maxindex and cumulativesum <= r )
| {
| i++;
| cumulativesum := cumulativesum + vector.Element( i );
| }
| }
| return i;
| *]
| InterfaceProperties { Accessibility: 'Module' }
| }
|
|