zoukankan      html  css  js  c++  java
  • 散户炒股票为啥总赔钱?李永乐老师用数学告诉你原因~

    看了个视频:《散户炒股票为啥总赔钱?李永乐老师用数学告诉你原因~》(https://weibo.com/3325704142/Gecagg1CK)

    根据视频中得出的结论,写了小段代码认证下结论是否正确,经过认证,还真是如此,奇幻!

    大概就是,两人抛硬币对赌,规则如下:

    1)A=正面 B=正面 :A赢3;

    2)A=反面 B=反面 :A赢1;

    3)其他情况:B赢2;

    一个看似公平的游戏,但是如果A将出A面的几率控制在 1/3 ~ 2/5的时候,B赢钱的几率会接近于0~

    大家可以在这个在线代码(https://tour.golang.org/)运行网站中测试下下面这个代码:

    package main
    
    import (
    	"fmt"
    	"math/rand"
    	"time"
    )
    
    var min, max float64
    
    func RandomInt(max int) int {
    	rand.Seed(time.Now().UnixNano())
    	return rand.Intn(max) + 1
    }
    
    func manT() int {
    	return RandomInt(2)
    }
    
    // 1:正面 2:反面
    func womanT() int {
    	//先获取一个概率,概率在 1/3 ~ 2/5 之间
    	var p float64
    	for p < min || p > max {
    		p = float64(RandomInt(100)) / 100.0
    	}
    	//fmt.Printf("Probability: %.2f
    ", p)
    
    	//将概率*100,得到一个分水岭数字,比如35
    	var P int = int(100 * p)
    
    	//然后随机获取一个数字
    	//如果大于P(比如:35),那么抛出反面(2);反之抛出正面(1)
    	v := RandomInt(100)
    	if v > P {
    		return 2
    	}
    	return 1
    
    }
    
    func main() {
    	min, max = 1.0/3.0, 2.0/5.0
    	fmt.Println(min, max)
    	wm := make(map[int]int)
    
    	var man_money int = 0
    	var woman_money int = 0
    	for i := 0; i < 100; i++ {
    		n1 := womanT()
    		n2 := manT()
    		wm[n1]++ //记录美女所抛硬币
    
    		switch {
    		case n1 == 1 && n2 == 1:
    			man_money += 3
    			woman_money -= 3
    		case n1 == 2 && n2 == 2:
    			man_money += 1
    			woman_money -= 1
    		default:
    			man_money -= 2
    			woman_money += 2
    		}
    	}
    
    	fmt.Println("玩了100次,美女抛出 '正面' 和 '反面' 的次数和概率如下:")
    	fmt.Printf("正面 次数:%d 概率: %.2f
    ", wm[1], float64(wm[1])/100.0)
    	fmt.Printf("反面 次数:%d 概率: %.2f
    ", wm[2], float64(wm[2])/100.0)
    
    	fmt.Println("男子和美女所得金额如下:")
    	fmt.Println("Man: ", man_money)
    	fmt.Println("Woman: ", woman_money)
    }
    

      

    跑了几次,只要美女控制住概率,发现果然都是美女在赢钱!

  • 相关阅读:
    阿里的面试官都喜欢问哪些问题?
    Spring AOP中的JDK和CGLib动态代理哪个效率更高?
    招聘季!送你21套经典面试题!助你一臂之力!
    Spring AOP中的JDK和CGLib动态代理哪个效率更高?
    为什么需要分布式配置中心?
    线上出故障了!我慌得一匹!教大家如何应对在线故障!
    阿里巴巴的26款超神Java开源项目!
    完了!生产事故!几百万消息在消息队列里积压了几个小时!
    十大经典排序算法(动图演示)
    用户画像学习笔记
  • 原文地址:https://www.cnblogs.com/yzhch/p/9069586.html
Copyright © 2011-2022 走看看