<?php
$valueWeights = [
149 => 55.555,
130 => 10.0050,
131 => 5,
132 => 5.2,
133 => 10,
134 => 10.24,
135 => 5
];
$mostDecimals = 0;
// not bothering to validate against infinite and extremely fringe case floats
foreach ($valueWeights as $value => $weight) {
$tempDecimals = 0;
while ((string)$weight !== (string)floor($weight)) {
$weight *= 10; // this is not permanently mutating the weight
++$tempDecimals;
}
$mostDecimals = max($mostDecimals, $tempDecimals);
}
echo "Most Decimals: {$mostDecimals}\n";
$factor = pow(10, $mostDecimals);
echo "Factor: " , $factor , "\n";
$totalWeight = (array_sum($valueWeights) - 1) * $factor;
for ($i = 0; $i < 10; ++$i) {
$rand = mt_rand(0, $totalWeight);
echo "\nRand: " , $rand , "\n";
$cumulativeScaledWeight = 0;
foreach ($valueWeights as $value => $weight) {
$cumulativeScaledWeight += $weight * $factor;
if ($rand < $cumulativeScaledWeight) {
echo "Value: {$value}\n";
break;
}
}
}
- Output for 7.4.4
- Most Decimals: 3
Factor: 1000
Rand: 52197
Value: 149
Rand: 33785
Value: 149
Rand: 4783
Value: 149
Rand: 24994
Value: 149
Rand: 76588
Value: 133
Rand: 77417
Value: 133
Rand: 40541
Value: 149
Rand: 80009
Value: 133
Rand: 14826
Value: 149
Rand: 52691
Value: 149
- Output for 7.4.3
- Most Decimals: 3
Factor: 1000
Rand: 27007
Value: 149
Rand: 10900
Value: 149
Rand: 66417
Value: 131
Rand: 96675
Value: 135
Rand: 68050
Value: 131
Rand: 35286
Value: 149
Rand: 89224
Value: 134
Rand: 8536
Value: 149
Rand: 99003
Value: 135
Rand: 12442
Value: 149
- Output for 7.4.2
- Most Decimals: 3
Factor: 1000
Rand: 72484
Value: 132
Rand: 34852
Value: 149
Rand: 90713
Value: 134
Rand: 66948
Value: 131
Rand: 13708
Value: 149
Rand: 74728
Value: 132
Rand: 19103
Value: 149
Rand: 24120
Value: 149
Rand: 56643
Value: 130
Rand: 18032
Value: 149
- Output for 7.4.1
- Most Decimals: 3
Factor: 1000
Rand: 12442
Value: 149
Rand: 78199
Value: 133
Rand: 82745
Value: 133
Rand: 65784
Value: 131
Rand: 76139
Value: 133
Rand: 5747
Value: 149
Rand: 13302
Value: 149
Rand: 19813
Value: 149
Rand: 27759
Value: 149
Rand: 97760
Value: 135
- Output for 7.4.0
- Most Decimals: 3
Factor: 1000
Rand: 48109
Value: 149
Rand: 713
Value: 149
Rand: 47156
Value: 149
Rand: 34376
Value: 149
Rand: 34171
Value: 149
Rand: 42269
Value: 149
Rand: 72429
Value: 132
Rand: 8228
Value: 149
Rand: 63246
Value: 130
Rand: 4512
Value: 149
- Output for 7.3.16
- Most Decimals: 3
Factor: 1000
Rand: 56952
Value: 130
Rand: 68479
Value: 131
Rand: 23932
Value: 149
Rand: 49180
Value: 149
Rand: 68380
Value: 131
Rand: 55010
Value: 149
Rand: 8129
Value: 149
Rand: 45073
Value: 149
Rand: 51530
Value: 149
Rand: 82627
Value: 133
- Output for 7.3.15
- Most Decimals: 3
Factor: 1000
Rand: 66604
Value: 131
Rand: 31766
Value: 149
Rand: 23430
Value: 149
Rand: 57972
Value: 130
Rand: 97527
Value: 135
Rand: 96943
Value: 135
Rand: 20779
Value: 149
Rand: 73957
Value: 132
Rand: 11306
Value: 149
Rand: 68196
Value: 131
- Output for 7.3.14
- Most Decimals: 3
Factor: 1000
Rand: 31862
Value: 149
Rand: 22817
Value: 149
Rand: 90562
Value: 134
Rand: 51928
Value: 149
Rand: 57124
Value: 130
Rand: 15460
Value: 149
Rand: 98544
Value: 135
Rand: 53881
Value: 149
Rand: 98329
Value: 135
Rand: 26036
Value: 149
- Output for 7.3.13
- Most Decimals: 3
Factor: 1000
Rand: 87679
Value: 134
Rand: 77396
Value: 133
Rand: 29146
Value: 149
Rand: 84362
Value: 133
Rand: 13001
Value: 149
Rand: 53520
Value: 149
Rand: 35010
Value: 149
Rand: 53924
Value: 149
Rand: 28238
Value: 149
Rand: 9411
Value: 149
- Output for 7.3.12
- Most Decimals: 3
Factor: 1000
Rand: 69823
Value: 131
Rand: 2525
Value: 149
Rand: 1855
Value: 149
Rand: 72128
Value: 132
Rand: 29006
Value: 149
Rand: 82187
Value: 133
Rand: 13343
Value: 149
Rand: 91010
Value: 134
Rand: 59640
Value: 130
Rand: 5881
Value: 149
- Output for 7.3.11
- Most Decimals: 3
Factor: 1000
Rand: 44308
Value: 149
Rand: 34301
Value: 149
Rand: 64363
Value: 130
Rand: 60871
Value: 130
Rand: 97164
Value: 135
Rand: 10218
Value: 149
Rand: 26327
Value: 149
Rand: 84628
Value: 133
Rand: 47115
Value: 149
Rand: 56962
Value: 130
- Output for 7.3.10
- Most Decimals: 3
Factor: 1000
Rand: 80991
Value: 133
Rand: 12893
Value: 149
Rand: 54045
Value: 149
Rand: 75201
Value: 132
Rand: 83034
Value: 133
Rand: 30023
Value: 149
Rand: 42530
Value: 149
Rand: 24966
Value: 149
Rand: 50367
Value: 149
Rand: 74098
Value: 132
- Output for 7.3.9
- Most Decimals: 3
Factor: 1000
Rand: 75045
Value: 132
Rand: 62314
Value: 130
Rand: 64092
Value: 130
Rand: 66573
Value: 131
Rand: 70348
Value: 131
Rand: 49900
Value: 149
Rand: 69386
Value: 131
Rand: 88659
Value: 134
Rand: 17099
Value: 149
Rand: 32528
Value: 149
- Output for 7.3.8
- Most Decimals: 3
Factor: 1000
Rand: 43415
Value: 149
Rand: 10185
Value: 149
Rand: 93044
Value: 134
Rand: 81256
Value: 133
Rand: 64387
Value: 130
Rand: 47508
Value: 149
Rand: 41294
Value: 149
Rand: 56333
Value: 130
Rand: 42345
Value: 149
Rand: 17350
Value: 149
- Output for 7.3.7
- Most Decimals: 3
Factor: 1000
Rand: 62891
Value: 130
Rand: 34135
Value: 149
Rand: 37972
Value: 149
Rand: 61714
Value: 130
Rand: 7237
Value: 149
Rand: 55711
Value: 130
Rand: 88561
Value: 134
Rand: 63261
Value: 130
Rand: 95502
Value: 134
Rand: 61117
Value: 130
- Output for 7.3.6
- Most Decimals: 3
Factor: 1000
Rand: 82339
Value: 133
Rand: 5226
Value: 149
Rand: 73836
Value: 132
Rand: 68117
Value: 131
Rand: 82685
Value: 133
Rand: 8486
Value: 149
Rand: 9691
Value: 149
Rand: 99033
Value: 135
Rand: 41798
Value: 149
Rand: 45751
Value: 149
- Output for 7.3.5
- Most Decimals: 3
Factor: 1000
Rand: 29128
Value: 149
Rand: 79275
Value: 133
Rand: 66423
Value: 131
Rand: 94092
Value: 134
Rand: 92806
Value: 134
Rand: 54174
Value: 149
Rand: 63457
Value: 130
Rand: 55346
Value: 149
Rand: 91667
Value: 134
Rand: 17694
Value: 149
- Output for 7.2.9, 7.3.4
- Most Decimals: 3
Factor: 1000
Rand: 48720
Value: 149
Rand: 43042
Value: 149
Rand: 1293
Value: 149
Rand: 36783
Value: 149
Rand: 78817
Value: 133
Rand: 35713
Value: 149
Rand: 85621
Value: 133
Rand: 77717
Value: 133
Rand: 19024
Value: 149
Rand: 58783
Value: 130
- Output for 7.3.3
- Most Decimals: 3
Factor: 1000
Rand: 93809
Value: 134
Rand: 43035
Value: 149
Rand: 78813
Value: 133
Rand: 74968
Value: 132
Rand: 54578
Value: 149
Rand: 19983
Value: 149
Rand: 58401
Value: 130
Rand: 92118
Value: 134
Rand: 73003
Value: 132
Rand: 49616
Value: 149
- Output for 7.3.2
- Most Decimals: 3
Factor: 1000
Rand: 54180
Value: 149
Rand: 33947
Value: 149
Rand: 75910
Value: 133
Rand: 9011
Value: 149
Rand: 55172
Value: 149
Rand: 9825
Value: 149
Rand: 12558
Value: 149
Rand: 88152
Value: 134
Rand: 25433
Value: 149
Rand: 27119
Value: 149
- Output for 7.3.1
- Most Decimals: 3
Factor: 1000
Rand: 64941
Value: 130
Rand: 80836
Value: 133
Rand: 19890
Value: 149
Rand: 92572
Value: 134
Rand: 41236
Value: 149
Rand: 4317
Value: 149
Rand: 38515
Value: 149
Rand: 86289
Value: 134
Rand: 52610
Value: 149
Rand: 46724
Value: 149
- Output for 7.3.0
- Most Decimals: 3
Factor: 1000
Rand: 41835
Value: 149
Rand: 11721
Value: 149
Rand: 33095
Value: 149
Rand: 21968
Value: 149
Rand: 46847
Value: 149
Rand: 27055
Value: 149
Rand: 7138
Value: 149
Rand: 34865
Value: 149
Rand: 59085
Value: 130
Rand: 30108
Value: 149
- Output for 7.2.29
- Most Decimals: 3
Factor: 1000
Rand: 61706
Value: 130
Rand: 9178
Value: 149
Rand: 30251
Value: 149
Rand: 12405
Value: 149
Rand: 49891
Value: 149
Rand: 15628
Value: 149
Rand: 47733
Value: 149
Rand: 4507
Value: 149
Rand: 7245
Value: 149
Rand: 98540
Value: 135
- Output for 7.2.28
- Most Decimals: 3
Factor: 1000
Rand: 38880
Value: 149
Rand: 74557
Value: 132
Rand: 78511
Value: 133
Rand: 94069
Value: 134
Rand: 52289
Value: 149
Rand: 99706
Value: 135
Rand: 50206
Value: 149
Rand: 71887
Value: 132
Rand: 6667
Value: 149
Rand: 62022
Value: 130
- Output for 7.2.2, 7.2.8, 7.2.27
- Most Decimals: 3
Factor: 1000
Rand: 30826
Value: 149
Rand: 71020
Value: 132
Rand: 63327
Value: 130
Rand: 41814
Value: 149
Rand: 72895
Value: 132
Rand: 86011
Value: 134
Rand: 50394
Value: 149
Rand: 61857
Value: 130
Rand: 90723
Value: 134
Rand: 13485
Value: 149
- Output for 7.2.26
- Most Decimals: 3
Factor: 1000
Rand: 201
Value: 149
Rand: 20483
Value: 149
Rand: 67697
Value: 131
Rand: 22680
Value: 149
Rand: 60555
Value: 130
Rand: 6886
Value: 149
Rand: 56763
Value: 130
Rand: 97788
Value: 135
Rand: 21763
Value: 149
Rand: 68669
Value: 131
- Output for 7.2.25
- Most Decimals: 3
Factor: 1000
Rand: 39481
Value: 149
Rand: 99661
Value: 135
Rand: 12573
Value: 149
Rand: 88424
Value: 134
Rand: 84248
Value: 133
Rand: 92530
Value: 134
Rand: 36781
Value: 149
Rand: 1667
Value: 149
Rand: 32420
Value: 149
Rand: 32965
Value: 149
- Output for 7.2.24
- Most Decimals: 3
Factor: 1000
Rand: 6486
Value: 149
Rand: 14590
Value: 149
Rand: 94883
Value: 134
Rand: 40778
Value: 149
Rand: 65025
Value: 130
Rand: 56520
Value: 130
Rand: 75023
Value: 132
Rand: 35720
Value: 149
Rand: 14728
Value: 149
Rand: 74430
Value: 132
- Output for 7.2.23
- Most Decimals: 3
Factor: 1000
Rand: 94434
Value: 134
Rand: 91394
Value: 134
Rand: 29049
Value: 149
Rand: 55207
Value: 149
Rand: 11942
Value: 149
Rand: 69882
Value: 131
Rand: 93456
Value: 134
Rand: 87195
Value: 134
Rand: 24693
Value: 149
Rand: 2140
Value: 149
- Output for 7.2.22
- Most Decimals: 3
Factor: 1000
Rand: 96127
Value: 135
Rand: 74771
Value: 132
Rand: 30454
Value: 149
Rand: 14358
Value: 149
Rand: 41812
Value: 149
Rand: 15819
Value: 149
Rand: 63276
Value: 130
Rand: 92413
Value: 134
Rand: 72121
Value: 132
Rand: 11286
Value: 149
- Output for 7.2.21
- Most Decimals: 3
Factor: 1000
Rand: 93764
Value: 134
Rand: 58907
Value: 130
Rand: 22747
Value: 149
Rand: 59142
Value: 130
Rand: 79048
Value: 133
Rand: 62597
Value: 130
Rand: 22679
Value: 149
Rand: 34324
Value: 149
Rand: 61552
Value: 130
Rand: 6570
Value: 149
- Output for 7.2.20
- Most Decimals: 3
Factor: 1000
Rand: 78628
Value: 133
Rand: 92424
Value: 134
Rand: 65662
Value: 131
Rand: 43264
Value: 149
Rand: 84080
Value: 133
Rand: 59398
Value: 130
Rand: 64869
Value: 130
Rand: 53126
Value: 149
Rand: 38933
Value: 149
Rand: 99141
Value: 135
- Output for 7.2.19
- Most Decimals: 3
Factor: 1000
Rand: 92275
Value: 134
Rand: 64529
Value: 130
Rand: 70117
Value: 131
Rand: 72444
Value: 132
Rand: 83291
Value: 133
Rand: 63441
Value: 130
Rand: 12906
Value: 149
Rand: 46550
Value: 149
Rand: 72080
Value: 132
Rand: 88220
Value: 134
- Output for 7.2.18
- Most Decimals: 3
Factor: 1000
Rand: 97035
Value: 135
Rand: 69639
Value: 131
Rand: 79039
Value: 133
Rand: 59978
Value: 130
Rand: 30124
Value: 149
Rand: 52137
Value: 149
Rand: 25342
Value: 149
Rand: 49110
Value: 149
Rand: 46497
Value: 149
Rand: 8514
Value: 149
- Output for 7.2.17
- Most Decimals: 3
Factor: 1000
Rand: 61454
Value: 130
Rand: 59102
Value: 130
Rand: 9858
Value: 149
Rand: 80909
Value: 133
Rand: 68078
Value: 131
Rand: 94015
Value: 134
Rand: 53638
Value: 149
Rand: 35939
Value: 149
Rand: 98467
Value: 135
Rand: 99720
Value: 135
- Output for 7.2.16
- Most Decimals: 3
Factor: 1000
Rand: 83433
Value: 133
Rand: 86852
Value: 134
Rand: 24019
Value: 149
Rand: 58351
Value: 130
Rand: 70940
Value: 132
Rand: 15717
Value: 149
Rand: 65586
Value: 131
Rand: 54184
Value: 149
Rand: 95402
Value: 134
Rand: 68165
Value: 131
- Output for 7.2.15
- Most Decimals: 3
Factor: 1000
Rand: 85386
Value: 133
Rand: 23499
Value: 149
Rand: 57139
Value: 130
Rand: 45598
Value: 149
Rand: 52933
Value: 149
Rand: 8314
Value: 149
Rand: 10965
Value: 149
Rand: 18451
Value: 149
Rand: 96767
Value: 135
Rand: 98514
Value: 135
- Output for 7.2.14
- Most Decimals: 3
Factor: 1000
Rand: 81356
Value: 133
Rand: 76536
Value: 133
Rand: 74071
Value: 132
Rand: 62308
Value: 130
Rand: 50807
Value: 149
Rand: 93961
Value: 134
Rand: 42605
Value: 149
Rand: 96557
Value: 135
Rand: 84601
Value: 133
Rand: 11330
Value: 149
- Output for 7.2.13
- Most Decimals: 3
Factor: 1000
Rand: 53006
Value: 149
Rand: 81804
Value: 133
Rand: 79802
Value: 133
Rand: 47442
Value: 149
Rand: 81729
Value: 133
Rand: 86685
Value: 134
Rand: 36453
Value: 149
Rand: 34763
Value: 149
Rand: 14689
Value: 149
Rand: 16898
Value: 149
- Output for 7.2.12
- Most Decimals: 3
Factor: 1000
Rand: 48449
Value: 149
Rand: 26091
Value: 149
Rand: 37471
Value: 149
Rand: 35042
Value: 149
Rand: 70650
Value: 132
Rand: 13720
Value: 149
Rand: 95938
Value: 134
Rand: 29776
Value: 149
Rand: 74998
Value: 132
Rand: 64236
Value: 130
- Output for 7.2.11
- Most Decimals: 3
Factor: 1000
Rand: 71470
Value: 132
Rand: 53128
Value: 149
Rand: 92534
Value: 134
Rand: 6509
Value: 149
Rand: 75038
Value: 132
Rand: 70867
Value: 132
Rand: 22605
Value: 149
Rand: 22547
Value: 149
Rand: 99485
Value: 135
Rand: 48500
Value: 149
- Output for 7.2.10
- Most Decimals: 3
Factor: 1000
Rand: 41166
Value: 149
Rand: 62273
Value: 130
Rand: 83605
Value: 133
Rand: 19514
Value: 149
Rand: 18502
Value: 149
Rand: 83328
Value: 133
Rand: 23674
Value: 149
Rand: 87479
Value: 134
Rand: 19773
Value: 149
Rand: 58958
Value: 130
- Output for 7.2.7
- Most Decimals: 3
Factor: 1000
Rand: 60010
Value: 130
Rand: 60915
Value: 130
Rand: 5192
Value: 149
Rand: 24501
Value: 149
Rand: 53553
Value: 149
Rand: 14774
Value: 149
Rand: 65394
Value: 130
Rand: 56054
Value: 130
Rand: 93624
Value: 134
Rand: 14700
Value: 149
- Output for 7.2.6
- Most Decimals: 3
Factor: 1000
Rand: 23458
Value: 149
Rand: 95597
Value: 134
Rand: 91577
Value: 134
Rand: 93622
Value: 134
Rand: 49336
Value: 149
Rand: 84290
Value: 133
Rand: 90799
Value: 134
Rand: 45087
Value: 149
Rand: 4533
Value: 149
Rand: 50102
Value: 149
- Output for 7.2.5
- Most Decimals: 3
Factor: 1000
Rand: 43160
Value: 149
Rand: 96058
Value: 135
Rand: 99157
Value: 135
Rand: 41635
Value: 149
Rand: 84859
Value: 133
Rand: 49312
Value: 149
Rand: 20270
Value: 149
Rand: 51016
Value: 149
Rand: 45899
Value: 149
Rand: 44014
Value: 149
- Output for 7.2.4
- Most Decimals: 3
Factor: 1000
Rand: 39963
Value: 149
Rand: 32801
Value: 149
Rand: 17293
Value: 149
Rand: 41299
Value: 149
Rand: 46855
Value: 149
Rand: 15381
Value: 149
Rand: 93663
Value: 134
Rand: 97930
Value: 135
Rand: 7304
Value: 149
Rand: 34438
Value: 149
- Output for 7.2.3
- Most Decimals: 3
Factor: 1000
Rand: 15168
Value: 149
Rand: 86176
Value: 134
Rand: 37908
Value: 149
Rand: 64109
Value: 130
Rand: 14351
Value: 149
Rand: 1494
Value: 149
Rand: 41001
Value: 149
Rand: 12444
Value: 149
Rand: 37957
Value: 149
Rand: 71492
Value: 132
- Output for 7.2.1
- Most Decimals: 3
Factor: 1000
Rand: 28389
Value: 149
Rand: 62868
Value: 130
Rand: 28971
Value: 149
Rand: 81998
Value: 133
Rand: 88933
Value: 134
Rand: 98137
Value: 135
Rand: 38521
Value: 149
Rand: 369
Value: 149
Rand: 57011
Value: 130
Rand: 41961
Value: 149
- Output for 7.2.0
- Most Decimals: 3
Factor: 1000
Rand: 52858
Value: 149
Rand: 83072
Value: 133
Rand: 97960
Value: 135
Rand: 79472
Value: 133
Rand: 73350
Value: 132
Rand: 80136
Value: 133
Rand: 42093
Value: 149
Rand: 23511
Value: 149
Rand: 13363
Value: 149
Rand: 64871
Value: 130
preferences:
71.57 ms | 402 KiB | 57 Q