( 转发)
微信公众平台:趋势投资人(原账号是);
可以加我的微信或QQ,账号都是:462865719
---------------
现实中赌博中赌徒的胜率并非
50%,通常要低于50%,庄家的胜率会超过50%,大样本的结果是庄家会赢,这是大家都知道的基本原理。但是假设赌博的胜率为 50%,
和抛硬币一样,抛硬币次数多了,正反面的概率基本相同,但长久赌博下去,赌徒依然会倾向于亏损,这是为什么呢?这个是庄家盈利的第二个暗藏密码。
其次一次赌博,输赢的概率各占50%,并不意味着多次赌博之后
,有50%的人赢钱,50%的人输钱,更不代表赌徒可以收支平衡!本质上讲,赌徒可以使用的赌资是有限的,一旦输光,那只能退出赌桌,无法重新翻盘。为了更好理解这一点,我来把问题进一步简化一下,然后给大家展示一下用计算机模拟出来的结果。
一、游戏规则
有 1000 个玩家,每人手里有 10000
元的筹码,可以用来赌博;输了,压上的筹码输掉,如果赢了,则盈利翻倍,即盈亏比为2:1;输赢的概率各占 50%;一旦任何玩家的筹码为0,必须中途退出游戏。从理论上讲,盈亏比为2:1,胜率为50%,长期下来,是完全可以盈利的。
二、编写游戏程序
用 Shiny 写的第一个小程序。这个 Shiny 呢,简单来说是 Rstudio
里面自带的一个网页程序的编辑器。安装并打开 Rstudio,从“新建”里面找到“Shiny Web App”。

给自己的程序取个名字,就可以开始编写了。最简单的做法是清空窗口,把我下面的代码拷贝进去:
#
# This is a Shiny web application. You can run
the application by clicking
# the 'Run App' button above.
#
# Find out more about building applications with
Shiny here:
#
#
http://shiny.rstudio.com/
#
library(shiny)
library(gridExtra)
# Define UI for application that draws a
histogram
ui <- shinyUI(fluidPage(
#
Application title
titlePanel("Gambler Simulation"),
# Sidebar
with a slider input for number of bins
sidebarLayout(
sidebarPanel(
sliderInput("size",
"Number of
Gamblers:",
min =
100,
max =
1000,
value =
20),
sliderInput("winp",
"Winning
Probability",
min =
0,
max =
1,
value =
20),
sliderInput("bid",
"Bid (per
Game)",
min =
100,
max =
5000,
value =
20),
sliderInput("iter",
"Iterations",
min =
100,
max =
2000,
value =
20),
sliderInput("bins",
"Number of
Bins",
min =
1,
max =
50,
value =
30)
),
# Show a plot of the generated
distribution
mainPanel(
plotOutput("distPlot"),
plotOutput("distLine")
)
)
))
# Define server logic required to draw a
histogram
server <- shinyServer(function(input, output)
{
output$distPlot <- renderPlot({
gamblers = rep(10000,input$size)
for (i in 1:input$iter){
gain = (2*rbinom(input$size,
1, input$winp) -1)*input$bid
gamblers[gamblers>=input$bid] <-
gamblers[gamblers>=input$bid] +
gain[gamblers>=input$bid]
gamblers[gamblers>100000]
<-100000
}
bins <- seq(min(gamblers), max(gamblers),
length.out = input$bins + 1)
# draw the histogram with the specified number
of bins
hist(gamblers, breaks = bins, col = 'darkgray',
border = 'white', ylim = c(0,input$size),
xlab = "Wealth")
})
output$distLine <- renderPlot({
gamblers = rep(10000,input$size)
for (i in 1:input$iter){
gain = (2*rbinom(input$size,
1, input$winp) -1)*input$bid
gamblers[gamblers>=input$bid] <-
gamblers[gamblers>=input$bid] +
gain[gamblers>=input$bid]
gamblers[gamblers>100000]
<-100000
}
bins <- seq(min(gamblers), max(gamblers),
length.out = input$bins + 1)
# draw the histogram with the specified number of
bins
plot(sort(gamblers), type = 'l', xlab= "Wealth",
ylab = "Number of Gamblers")+
abline(h = 10000, col =
"red")
})
})
# Run the
application
shinyApp(ui = ui, server = server)
之后点击右上角的
Run app,就可以出现属于你自己的小模拟器啦


三、计算机软件模拟的游戏结果
1、游戏1,每次押注为500元
设定:每一局游戏,玩家压上
500 元的筹码;所有玩家一共进行 100
局游戏。相当于每次仓位为5%。
我们按照设定模拟一下,100次游戏之后,大家的财富分配是怎样的呢?

右边的两张图分别是 1000
位玩家的财富柱状图和排位图,红线表示初始资金10000元的位置。我们看到,这个时候的财富分配还比较平均,有大约
55%的人财富在10000以上,即55%的人盈利,45%的人出现亏损。
2、加大赌注,每次押注为1000元
有了这个模拟器,改变原始游戏的一些参数,将赌注从500元增大到 1000
元,相当于每次仓位为10%。游戏结束时,有近 300 人的余额为 0,余额 10000
以上的人数约为50%,即近300人爆仓,近30%的人爆仓,50%的人亏损,50%的人盈利。

3、每次押注为1500
将赌注从1000元,增大到1500元,相当于每次仓位为15%。游戏结束时有近 600 人的余额为 0,余额 10000
以上的人数小于40%。即600人爆仓,近60%的人爆仓,60%的人亏损,40%的人盈利。

4、每次押注为3000
将赌注增加到3000元,相当于每次仓位为30%。游戏结束时有近800人余额为0,余额10000以上的人数约在20%-25%。即近800人爆仓,近80%的人爆仓;23%左右的人盈利,77%左右的人亏损。
四、讨论
1、不要重仓,仓位越大,爆仓和亏损的概率越大,仓位达到一定程度,基本上就是爆仓的命运。
之所以如此,是因为虽然胜率是50%,但是样本分布是不均匀的,运气不好的话,可能先连续输掉10局,然后赢利10局,也符合50% 的成功率。但如果仓位比较大,在前10局之内,就已经爆仓了,被清洗出投机市场,后面的盈利机会与你无关。但庄家有足够的本金,可以确保自己不会被清理出资本市场,一直呆在里面。
2、没钱就不要玩什么豪赌了,不然最后吃不了兜着走的,肯定是你。
2.
不要迷恋赌神和暴富神话,毕竟参与人数多了,总会出现少数的幸运儿。比如,我模拟了一下,在赌注不同的情况下,游戏结束时拥有财富最多的玩家有多少筹码,结果让人吃惊。
赌注为 500元时,游戏结束时最大财富为 25000;
赌注为 1000元时,游戏结束时最大财富为 38000;
赌注为 1500元时,游戏结束时最大财富为 58000;
赌注为 3000元时,游戏结束时最大财富为 88000;
如果你总是盯着少数赢家看,觉得自己能够通过赌博一夜暴富,那相信我,你最后还是倾家荡产的几率比较大。
假设我们调整成功率和增加赌博持续时间,我们再看看后面的盈利结果,请看后续文章。
加载中,请稍候......