package rand const ( dn9301 = int32(9301) dn49297 = int32(49297) dn233280 = int32(233280) dn2332800 = float64(233280) zero = float64(0) one = float64(1) ) type Battle struct { seed int32 originSeed int32 } func (p *Battle) Seed(seed int32) { p.seed = seed p.originSeed = seed } func (p *Battle) Range01() float64 { return p.Range(zero, one) } func (p *Battle) Range(minVal, maxVal float64) float64 { p.seed = (p.seed*dn9301 + dn49297) % dn233280 return minVal + (float64(p.seed) / dn2332800 * (maxVal - minVal)) }