| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- package aliasmethod
- import (
- "testing"
- "fmt"
- )
- func Test_AliasMethod(t *testing.T) {
- var prizes = make(map[string]float64)
- prizes["圣诞老人"] = 0.05
- prizes["圣诞树"] = 0.15
- prizes["圣诞袜"] = 0.15
- prizes["圣诞小鹿"] = 0.15
- prizes["圣诞雪橇"] = 0.15
- prizes["圣诞雪人"] = 0.15
- prizes["谢谢参与"] = 0.2
- var keys = make([]string, 0, len(prizes))
- var values = make([]float64, 0, len(prizes))
- for key, value := range prizes {
- keys = append(keys, key)
- values = append(values, value)
- }
- var results = make(map[string]int, len(values))
- var aliasMethod, err = NewAliasMethod(values)
- if err != nil {
- fmt.Println(err)
- }
- for i:=0; i<500; i++ {
- var index = aliasMethod.Next()
- var key = keys[index]
- results[key] = results[key] + 1
- }
- fmt.Println(results)
- }
|