您當前的位置:首頁 > 體育

賭徒問題進階版:初始賭本為2,賭注為1。輸則賭注加1,贏則賭注減1,直到賭注為0或賭本為0為止?

作者:由 王贇 Maigo 發表于 體育時間:2015-10-11

賭徒問題進階版:初始賭本為2,賭注為1。輸則賭注加1,贏則賭注減1,直到賭注為0或賭本為0為止?Eidosper2015-10-11 14:02:58

我的理解是“每次賭博過程的期望都是不賺不賠的”,但是是否這種情況下透過“劃定邊界”能讓過程的結果數值改變,我是不知道的。

可能是個馬氏過程?機率論學的非常渣別打我

我們這樣分解一下題目:

1 起始你有2元籌碼

2 你將會進行一次遊戲,這次遊戲的輸贏都是x(x為賭注)

3 這次遊戲的輸贏期望都是一半,輸=-x 贏=+x,本次遊戲的期望是0

4 進行下一次遊戲,調整賭注。(這個不影響期望值)

核心過程是2和3,其餘的過程只是調整引數而已,核心過程的期望值是不賺不賠,而4過程並不影響期望,可以得出是不賺不賠。

你把“修改賭注”這一個事件去掉,不影響期望,但是過程就簡單很多了。“修改賭注大小”不影響“賭本的期望值”,賭注大小和賭本期望是無關變數。

另外有一門課程叫做《隨機過程》也可以參考一下,我作為突擊黨實在不好意思說自己學過這門……

最終結果是 2

另一個問題是:飛機上有100個人,第一個人隨便坐,其餘人如果自己座位上有人的話就隨便坐,問最後一個人坐到自己作為的機率是多少?

====

補充一下,題主問:如果結束條件是“賭本為0”結束,也就是說輸光才讓走。

假設一種情景,你到賭場,Ex=0,但是賭場有個規定:輸光才能走。

那原題目可以這樣改動一下:

1 你有1元籌碼

2 你將會進行一次遊戲,這次遊戲的期望是不賺不賠,輸了賠1,贏了賺1

3 直到你的賭本為0時,結束遊戲

這樣從結果上看,顯然最後你的結局是輸光,但是這和期望沒有什麼關係,你的期望還是1。

假如你開10w執行緒,輸光時候掛掉,然後執行緒可以同步的進行(每個執行緒保持遊戲次數相同,掛掉的不算),那麼你每一刻去統計所有執行緒的總籌碼,應該依然是10w。可能最後只剩下1個執行緒了,但是這個執行緒有10w的籌碼。

如果你用無限個執行緒,那結果應該還是1,也就是我改動後的賭本。

但是,也存在極小的可能性,你只開了一個執行緒,但是死活它都沒法end

賭徒問題進階版:初始賭本為2,賭注為1。輸則賭注加1,贏則賭注減1,直到賭注為0或賭本為0為止?知乎使用者2015-10-12 11:56:14

感覺還是比較穩定的~

using

System

namespace

拋硬幣問題

{

class

Program

{

static

void

Main

string

[]

args

{

Program

Prog

=

new

Program

();

int

Count

=

0

SumAll

=

0

while

Count

!=

50000

{

Count

++;

SumAll

+=

Prog

Work

();

float

Average

=

float

SumAll

/

Count

Console

Clear

();

Console

WriteLine

();

Console

WriteLine

“SumAll ”

+

SumAll

);

Console

WriteLine

“Count ”

+

Count

);

Console

WriteLine

“Average ”

+

Average

);

}

}

int

Work

()

{

int

Money

=

2

Fee

=

1

while

Fee

!=

0

&&

Money

>

0

{

if

Guid

NewGuid

()。

GetHashCode

()

%

2

==

0

{

Money

+=

Fee

Fee

——;

}

else

{

Money

-=

Fee

Fee

++;

}

}

return

Money

}

}

}

結果如下:

賭徒問題進階版:初始賭本為2,賭注為1。輸則賭注加1,贏則賭注減1,直到賭注為0或賭本為0為止?

賭徒問題進階版:初始賭本為2,賭注為1。輸則賭注加1,贏則賭注減1,直到賭注為0或賭本為0為止?

賭徒問題進階版:初始賭本為2,賭注為1。輸則賭注加1,贏則賭注減1,直到賭注為0或賭本為0為止?張雨萌2018-03-07 02:18:04

@王贇 Maigo 知乎又給我推送了三年前的題,估計大家都忘了吧。這次突然有了一點思路。

假設 第n次下住輸贏結果為X_n (贏為1,輸為-1),第n次下注之後賭注S_n,賭本T_n。

那麼

X_n

為i。i。d。 Bernoulli random variable,

S_n

為一維簡單隨機遊走。為了方便起見,令

X_0= -S_0=-1

,於是

S_0 = 1,\quad S_{n+1} = S_n - X_{n+1} = S_0 - \sum_{k=1}^{n+1} X_k = -\sum_{k=0}^{n+1}X_k, \quad\\ T_0 = 2,\quad T_{n+1} = T_n + X_{n+1} \cdot S_n.

歸納可得

\begin{align*} T_{n+1}&=T_n - X_{n+1} \sum_{k=0}^{n}X_k =T_0-\sum_{0\le k<l\le n+1}X_kX_l \\&= 2-\frac12\Big[(X_0+\dots+X_{n+1})^2 - (X_0^2+X_1^2+\dots+X_{n+1}^2)\Big] \\&= 2-\frac12[ S_{n+1}^2-(n+2)] \\&=-\frac12[S_{n+1}^2- (n + 1+5)]. \end{align*}

所以這個問題就變成了

S_n

作為一個從1出發的簡單隨機遊走,碰到 0 (i。e。 贏) 或者碰到

\sqrt{n+5}

(i。e。 輸光)的機率。

所以首先這個過程一定可以停止。(光碰到0的機率是1, 光碰到上邊的機率根據重對數律也是1)

然後停時有沒有 有限期望,以及optional stopping theorem是否還成立 還得再想想。

(如果停時期望有限,那麼S_n的增量是一致有界的。)

不過這個樣子看著比之前有希望多了。

賭徒問題進階版:初始賭本為2,賭注為1。輸則賭注加1,贏則賭注減1,直到賭注為0或賭本為0為止?匿名使用者2020-01-19 19:01:01

跑了一百億次, 結果非常接近 2

賭徒問題進階版:初始賭本為2,賭注為1。輸則賭注加1,贏則賭注減1,直到賭注為0或賭本為0為止?

這也沒啥, 更神奇的是似乎可以證明初始賭本為

n

, 最後期望帶走的金幣還是

 n

這個過程是一個鞅,最後錢數的期望都等於最開始的錢數。。。

use

rand

::

Rng

use

rayon

::

iter

::

{

IntoParallelIterator

ParallelIterator

};

use

time

::

PreciseTime

const

TIMES

i64

=

100_0000_0000

#[allow(unused_variables)]

pub

fn

do_one

()

->

i64

{

let

mut

rng

=

rand

::

thread_rng

();

let

mut

coin

mut

now

mut

time

=

2

1

0

);

while

coin

>

0

&&

now

>

0

{

time

+=

1

if

rng

gen

::

<

bool

>

()

{

//贏了

coin

+=

now

now

-=

1

}

else

{

//輸了

coin

-=

now

now

+=

1

}

}

return

coin

as

i64

}

fn

main

()

{

let

start

=

PreciseTime

::

now

();

let

sum

i64

=

1

。。

=

TIMES

)。

into_par_iter

()。

map

|

_

|

do_one

())。

sum

();

let

end

=

PreciseTime

::

now

();

println

“coin mean: {}”

sum

as

f32

/

TIMES

as

f32

);

println

“finished in {} seconds”

start

to

end

));

}

停時稍微大一點點, 約為 2。07

賭徒問題進階版:初始賭本為2,賭注為1。輸則賭注加1,贏則賭注減1,直到賭注為0或賭本為0為止?

比起離場金額, 這個問題更有趣的地方是停時的漸進表達吧。。。

賭徒問題進階版:初始賭本為2,賭注為1。輸則賭注加1,贏則賭注減1,直到賭注為0或賭本為0為止?yyx2020-01-19 19:54:31

若每次下注期望收益是x,那麼每賭一次賭本的期望就是加x,如果平均下注次數是n,初始賭本是s,那麼最終的賭本期望就是s+nx

不同的下注策略不會改變x,或者說不會改變期望收益率,即一次下注的期望收益比上單次下注金額,只會改變平均下注次數從而影響盈利情況

當x>0時,要使最後的賭本期望大,則n越大越好,就是有資金就投,從實際講這種情況往往能找到對沖的方法保證每次都穩賺不賠(有這種好事記得叫上我,哈哈)

當x<0時,應儘可能減小n,最好的辦法就是n取0,別去賭,如果一定要賭的話就是下一注,不管輸贏都走人……否則往往就是俗話說的“久賭必輸”

對於x=0,也就是公平情況,其實就是尋開心了……策略根本不會有任何影響,你說“那我就賭到輸光了才出來,不然就不走了,那不是一定輸光了嗎?”。這其實像隨機遊走,在一維的數軸上,初始在1,每次隨機各1/2機率向左或右走一個單位長度,0處是個坑,掉進去就結束了,一直走會怎樣?掉進0這個坑的機率是1,但是在數軸上位置的期望是1不是0,因為其實有一個極小的機率會走到極遠處,如同一個衝擊函式,位置期望恰好是1,說具體一點,比如初始1塊,每次下所有本金,那麼一次之後就是1/2機率2塊,2次之後就是1/4機率4塊,n次之後就是1/2^n機率2^n塊,所以期望本金始終還是1

所以對於公平賭局,不同策略只會改變遊玩次數,最後結束時的資金多少的分佈情況,但是不會改變資金的期望

以上。

標簽: 期望  賭本  執行緒  Now  輸光