---
# System prepended metadata

title: 可重複中獎模型
tags: [math, Public]

---

###### tags: `math` `Public`
# 可重複中獎模型

## 命題
1. 一公司尾牙共計要發出１００個獎項
2. 可參與抽獎的人數共４０人
3. 中獎者仍有抽獎資格(可中複數的獎項)

## 解題

### 某人都沒中的機率
$(39/40)^{100} \approx 7.951\%$

### 40個人裡有人沒中的機率
#### 數學模型
根據數學排容原理：有一個沒中的機率－有兩人沒中的機率＋有三人沒中的機率．．．

$C_1^{40}(39/40)^{100}-C_2^{40}(38/40)^{100}+C_3^{40}(37/40)^{100}...C_{39}^{40}(1/40)^{100} \approx 0.97686\%$

#### 模擬模型
根據蒙地卡羅法進行快速估算  $\approx 97.3\%$
```golang
package main

import (
	"fmt"
	"math/rand"
	"time"
)

func main() {
	rand.Seed(time.Now().UnixNano())
	count := 0
	times := 100000
	for i := 0; i < times; i++ {
		if getDev() {
			count++
		}
	}
	fmt.Println(float64(count) / float64(times))
}

func getDev() bool {
	stat := map[int]int{}
	for i := 0; i <= 100; i++ {
		a := rand.Intn(40)
		stat[a]++
	}

	for i := 0; i < 40; i++ {
		if stat[i] == 0 {
			return true
		}
	}
	return false
}

```


## 小評
可以發現有人沒中的機率很高，據聞該公司已經連三年都有人沒中！

>數學不會騙人，它就是不會