make iterator loop a bit more elegant

This commit is contained in:
NunoSempere 2024-02-25 18:40:42 -03:00
parent 1fceb128bb
commit 3526ab4b31

View File

@ -23,19 +23,9 @@ func generatePeopleKnownDistribution(r src) IntProbabilities {
var probabilities IntProbabilities var probabilities IntProbabilities
sum := 0.0 sum := 0.0
// Consider zero case separately for i := 16; i <= 2048; i *= 2 {
/*p0 := r.Float64()
mapping[0.0] = p0
sum += p0
*/
// Consider successive exponents of 1.5
num := 16.0
base := 2.0
for i := 1; i < 8; i++ {
num = num * base
p := r.Float64() p := r.Float64()
probabilities = append(probabilities, IntProbability{N: int64(num), p: p}) probabilities = append(probabilities, IntProbability{N: int64(i), p: p})
sum += p sum += p
} }
@ -147,21 +137,22 @@ func main() {
var distribs []IntProbabilitiesWeights var distribs []IntProbabilitiesWeights
sum := int64(0) sum_weights := int64(0)
for i := 0; i < 100; i++ { for i := 0; i < 100; i++ {
people_known_distribution := generatePeopleKnownDistribution(r) people_known_distribution := generatePeopleKnownDistribution(r)
// fmt.Println(people_known_distribution) // fmt.Println(people_known_distribution)
result := getUnnormalizedBayesianUpdateForDistribution(people_known_distribution, r) result := getUnnormalizedBayesianUpdateForDistribution(people_known_distribution, r)
fmt.Println(i) // fmt.Println(i)
if result > 0 { if result > 0 {
fmt.Println(people_known_distribution) fmt.Println(people_known_distribution)
fmt.Println(result) fmt.Println(result)
distribs = append(distribs, IntProbabilitiesWeights{IntProb: people_known_distribution, w: result}) distribs = append(distribs, IntProbabilitiesWeights{IntProb: people_known_distribution, w: result})
} }
sum += result sum_weights += result
// fmt.Println(result) // fmt.Println(result)
} }
fmt.Println(sum) // fmt.Println(distribs)
// Now calculate the posterior
} }