三国杀中的概率学问题3——王荣

前言

本文是三国杀中的概率学问题系列文章中的一篇,将详细讨论王荣吉占的期望摸牌数问题。并加上连续情形作为拓展。

值得说明的是,本文的思路受到了一篇文章的启发,在此特别鸣谢,这是文章的链接。

王荣吉占的期望摸牌数

在这里插入图片描述
王荣的二技能吉占很有意思,展示牌堆顶的一张牌,然后猜测下一张牌比这张牌大还是比这张牌小,猜对了就继续猜,直到猜错为止,然后最终可以获得展示的所有牌。所以即便第一次就猜错,也能拿到2张牌(第一张展示的牌,和猜错的这张牌)。为了能够摸更多的牌,我们需要采取贪心的猜牌策略,保证自己这次猜对的概率最大。也就是说,在展示的牌为1-6时,我们选择猜大,8-13时猜小,7的时候由于猜大和猜小的概率一样,所以猜大猜小都可以。

离散情形

为了使得模型更一般化,将13种不同的点数改为n种不同的点数。那么问题可以重新描述如下:

问题:牌有1~n这n种点数,我们先亮出第一张牌,然后猜测下一张牌跟这一张牌的大小关系,然后亮出下一张牌,若猜对则继续猜,猜错就停止。求在最优策略下平均能亮出几张牌。

由于牌堆为理想牌堆,不管怎么拿牌,每种点数的牌的张数都是一样的,所以最优策略即为:若当前牌的点数小于等于 n + 1 2 \frac{n+1}{2} 2n+1,就猜大,否则猜小。

我们令 f ( x ) f(x) f(x)表示当前牌的点数为 x x x时,后面会亮出的牌数的数学期望。那么,我们可以得到下面的公式:

f ( x ) = { ∑ i = x + 1 n 1 n f ( i ) + 1 0 ≤ x ≤ n + 1 2 ∑ i = 1 x − 1 1 n f ( i ) + 1 n + 1 2 < x ≤ 1 f(x)=\begin{cases} \sum_{i=x+1}^n{\frac{1}{n}f(i)+1} &0\leq x\leq\frac{n+1}{2} \\ \sum_{i=1}^{x-1}{\frac{1}{n}f(i)+1} & \frac{n+1}{2}<x\leq 1 \end{cases} f(x)={i=x+1nn1f(i)+1i=1x1n1f(i)+10x2n+12n+1<x1

解释一下这个公式,当前牌的点数为 x x x时,首先会亮出下一张牌,这是+1的含义。然后下一张牌是每个点数的概率都是 1 n \frac{1}{n} n1,把猜对了能亮出的牌数乘以概率累加起来,就是猜对了之后期望亮出的牌数。分成两段也仅仅是因为猜测策略的原因。

我们要求的是平均能亮出几张牌,假设这个数量为 E E E,那么 E = 1 n ∑ i = 1 n f ( i ) + 1 E=\frac{1}{n}\sum_{i=1}^n{f(i)}+1 E=n1i=1nf(i)+1

首先先亮出一张牌,然后这张牌的点数有n种可能性,即有 1 n \frac{1}{n} n1的概率为i。如果第一张牌是i的话,则期望亮出的牌数就是 f ( i ) f(i) f(i)。于是我们把概率乘以亮出牌数累加起来,就是接下来会亮出的牌数,即 1 n ∑ i = 1 n f ( i ) \frac{1}{n}\sum_{i=1}^n{f(i)} n1i=1nf(i)。再加上第一张亮出的牌,就是 1 n ∑ i = 1 n f ( i ) + 1 \frac{1}{n}\sum_{i=1}^n{f(i)}+1 n1i=1nf(i)+1了。 E E E就是我们想求的答案。

接下来我们来算出 f ( x ) f(x) f(x)的具体值。

我们设出 f ( x ) f(x) f(x)的前缀和。令 F ( x ) = ∑ i = 1 n f ( i ) F(x)=\sum_{i=1}^n{f(i)} F(x)=i=1nf(i)

n + 1 2 < x ≤ 1 \frac{n+1}{2}<x\leq 1 2n+1<x1时:

f ( x ) = 1 n F ( x − 1 ) + 1 f(x)=\frac{1}{n}F(x-1)+1 f(x)=n1F(x1)+1

F ( x − 1 ) = n f ( x ) + n F(x-1)=nf(x)+n F(x1)=nf(x)+n

x + 1 x+1 x+1代入 x x x得:

F ( x ) = n f ( x + 1 ) + n F(x)=nf(x+1)+n F(x)=nf(x+1)+n

两式相减得:

f ( x ) = n f ( x + 1 ) − n f ( x ) f(x)=nf(x+1)-nf(x) f(x)=nf(x+1)nf(x)

于是得到了 f ( x ) f(x) f(x)的递推式

f ( x + 1 ) = n + 1 n f ( x ) f(x+1)=\frac{n+1}{n}f(x) f(x+1)=nn+1f(x)

由于 n n n为常数,于是我们发现在 n + 1 2 < x ≤ 1 \frac{n+1}{2}<x\leq 1 2n+1<x1上, f ( x ) f(x) f(x)是等比数列。

类似地,在 0 ≤ x ≤ n + 1 2 0\leq x\leq\frac{n+1}{2} 0x2n+1上求得 f ( x + 1 ) = n n + 1 f ( x ) f(x+1)=\frac{n}{n+1}f(x) f(x+1)=n+1nf(x)

可以发现, f ( x ) f(x) f(x)是一列以 n + 1 2 \frac{n+1}{2} 2n+1为对称轴,先递减,后递增的两段等比数列,公比分别为 n n + 1 \frac{n}{n+1} n+1n n + 1 n \frac{n+1}{n} nn+1

等比数列的求和公式为 S = a 1 ∗ q n − 1 q − 1 S=a_1*\frac{q^n-1}{q-1} S=a1q1qn1,现在公比已经知道了,所以要求首项。 f ( n + 1 2 ) f(\frac{n+1}{2}) f(2n+1)位于两段的连接处,可以让它作为两段等比数列的首项。现在我们来求 f ( n + 1 2 ) f(\frac{n+1}{2}) f(2n+1)

我们不妨假设 n n n为奇数,这样 x = n + 1 2 x=\frac{n+1}{2} x=2n+1在公式的两段上都可以成立。于是有

f ( n + 1 2 ) = ∑ i = n + 3 2 n 1 n f ( i ) + 1 = ∑ i = 1 n − 1 2 1 n f ( i ) + 1 f(\frac{n+1}{2})=\sum_{i=\frac{n+3}{2}}^n{\frac{1}{n}f(i)+1}=\sum_{i=1}^{\frac{n-1}{2}}{\frac{1}{n}f(i)+1} f(2n+1)=i=2n+3nn1f(i)+1=i=12n1n1f(i)+1

( 2 + 1 n ) f ( n + 1 2 ) = 1 n F ( n ) + 2 (2+\frac{1}{n})f(\frac{n+1}{2})=\frac{1}{n}F(n)+2 (2+n1)f(2n+1)=n1F(n)+2

f ( n + 1 2 ) = 1 2 n + 1 F ( n ) + 2 n 2 n + 1 f(\frac{n+1}{2})=\frac{1}{2n+1}F(n)+\frac{2n}{2n+1} f(2n+1)=2n+11F(n)+2n+12n

利用 f ( x ) f(x) f(x)的对称性,以及等比数列求和公式,有

F ( n ) = ∑ i = 1 n − 1 2 f ( i ) + ∑ i = n + 1 2 n f ( i ) = ∑ i = n + 3 2 n f ( i ) + ∑ i = n + 1 2 n f ( i ) = n + 1 n f ( n + 1 2 ) ( n + 1 n ) n − 1 2 − 1 n + 1 n − 1 + f ( n + 1 2 ) ( n + 1 n ) n + 1 2 − 1 n + 1 n − 1 = [ 2 n ( n + 1 n ) n + 1 2 − 2 n − 1 ] f ( n + 1 2 ) F(n)=\sum_{i=1}^{\frac{n-1}{2}}{f(i)}+\sum_{i=\frac{n+1}{2}}^n{f(i)}=\sum_{i=\frac{n+3}{2}}^n{f(i)}+\sum_{i=\frac{n+1}{2}}^n{f(i)}=\frac{n+1}{n}f(\frac{n+1}{2})\frac{(\frac{n+1}{n})^{\frac{n-1}{2}}-1}{\frac{n+1}{n}-1}+f(\frac{n+1}{2})\frac{(\frac{n+1}{n})^{\frac{n+1}{2}}-1}{\frac{n+1}{n}-1}=[2n(\frac{n+1}{n})^{\frac{n+1}{2}}-2n-1]f(\frac{n+1}{2}) F(n)=i=12n1f(i)+i=2n+1nf(i)=i=2n+3nf(i)+i=2n+1nf(i)=nn+1f(2n+1)nn+11(nn+1)2n11+f(2n+1)nn+11(nn+1)2n+11=[2n(nn+1)2n+12n1]f(2n+1)

联立两式
{ f ( n + 1 2 ) = 1 2 n + 1 F ( n ) + 2 n 2 n + 1 F ( n ) = [ 2 n ( n + 1 n ) n + 1 2 − 2 n − 1 ] f ( n + 1 2 ) \begin{cases} f(\frac{n+1}{2})=\frac{1}{2n+1}F(n)+\frac{2n}{2n+1}\\ F(n)=[2n(\frac{n+1}{n})^{\frac{n+1}{2}}-2n-1]f(\frac{n+1}{2}) \end{cases} {f(2n+1)=2n+11F(n)+2n+12nF(n)=[2n(nn+1)2n+12n1]f(2n+1)

解得
{ f ( n + 1 2 ) = n 2 n + 1 − n ( n + 1 n ) n + 1 2 F ( n ) = n [ 2 n 2 n + 1 ( n + 1 n ) n + 1 2 − 1 ] 1 − n 2 n + 1 ( n + 1 n ) n + 1 2 \begin{cases} f(\frac{n+1}{2})=\frac{n}{2n+1-n(\frac{n+1}{n})^{\frac{n+1}{2}}}\\ F(n)=\frac{n[\frac{2n}{2n+1}(\frac{n+1}{n})^{\frac{n+1}{2}}-1]}{1-\frac{n}{2n+1}(\frac{n+1}{n})^{\frac{n+1}{2}}} \end{cases} f(2n+1)=2n+1n(nn+1)2n+1nF(n)=12n+1n(nn+1)2n+1n[2n+12n(nn+1)2n+11]

于是,可以得到

E = ∑ i = 1 n 1 n f ( i ) + 1 = 1 n F ( n ) + 1 = 1 2 n + 1 n ( n n + 1 ) n + 1 2 − 1 E=\sum_{i=1}^{n}\frac{1}{n}f(i)+1=\frac{1}{n}F(n)+1=\frac{1}{\frac{2n+1}{n}(\frac{n}{n+1})^\frac{n+1}{2}-1} E=i=1nn1f(i)+1=n1F(n)+1=n2n+1(n+1n)2n+111

n = 13 n=13 n=13时, E ≈ 4.232 E\approx4.232 E4.232

n → ∞ n\to\infty n时, l i m n → ∞ E = l i m n → ∞ 1 2 ( 1 − 1 n + 1 ) n + 1 2 − 1 = 1 2 e − 1 2 − 1 ≈ 4.69 lim_{n\to\infty}E=lim_{n\to\infty}\frac{1}{2(1-\frac{1}{n+1})^{\frac{n+1}{2}}-1}=\frac{1}{2e^{-\frac{1}{2}}-1}\approx4.69 limnE=limn2(1n+11)2n+111=2e21114.69

至此,原题就解出来了。

连续情形

我们再做一点点扩展,看看在 n n n趋于无穷时的情况。现在我们把问题转化为连续的情况。

问题:在[0,1]区间上的均匀分布总体进行依次采样,约定若采样得到的随机数小于 1 2 \frac{1}{2} 21,则猜测下一次采得的随机数会更大;若采样得到的随机数大于 1 2 \frac{1}{2} 21,则猜测下一次采得的随机数会更小。若猜测正确,则继续猜;若猜测错误,则采样终止。求采样次数的数学期望。

f ( x ) f(x) f(x)表示当前点为 x x x时,继续猜测的次数。给出 f ( x ) f(x) f(x)的表达式如下:
f ( x ) = { ∫ x 1 f ( t ) d t + 1 0 ≤ x ≤ 1 2 ∫ 0 x f ( t ) d t + 1 1 2 < x ≤ 1 f(x)=\begin{cases} \int_x^1{f(t)dt}+1 &0\leq x\leq\frac{1}{2} \\ \int_0^x{f(t)dt}+1 & \frac{1}{2}<x\leq 1 \end{cases} f(x)={x1f(t)dt+10xf(t)dt+10x2121<x1
值得说明的是, x = 1 2 x=\frac{1}{2} x=21的情况对于两个公式都成立。这个式子是怎么得出来的呢?现在的点是 x x x,我们先要按上述规则进行一次猜测(这是+1的含义)。如果猜错了,我们就失去了继续猜测的机会。如果猜对了,那么我们可以继续猜测。假设下一个点是 t t t,这样的概率为 d t dt dt,继续猜测的次数为 f ( t ) f(t) f(t)。这样做一个积分(可以理解为加权平均)就能得到 f ( x ) f(x) f(x)的表达式了。

假设 E E E为采样次数的数学期望,那么 E = ∫ 0 1 f ( t ) d t + 1 E=\int_0^1{f(t)dt}+1 E=01f(t)dt+1

这个式子的含义是,先随机出现一个点(这是+1的含义),再按照这个点的值进行加权平均(也就是积分的含义)。

E E E就是在连续情形下,王荣的摸牌数。

接下来,我们开始解这个函数。

首先,发现一个很简单的事实, f ( 0 ) = f ( 1 ) = E f(0)=f(1)=E f(0)=f(1)=E

显然,这个函数关于 x = 1 2 x=\frac{1}{2} x=21是对称的。那么,我们来求一下 f ( 1 2 ) f(\frac{1}{2}) f(21)的值。

f ( 1 2 ) = ∫ 1 2 1 f ( t ) d t + 1 = ∫ 0 1 2 f ( t ) d t + 1 f(\frac{1}{2})=\int_\frac{1}{2}^1{f(t)dt}+1=\int_0^\frac{1}{2}{f(t)dt}+1 f(21)=211f(t)dt+1=021f(t)dt+1

2 f ( 1 2 ) = ∫ 0 1 f ( t ) d t + 2 = E + 2 2f(\frac{1}{2})=\int_0^1{f(t)dt}+2=E+2 2f(21)=01f(t)dt+2=E+2

f ( 1 2 ) = 1 2 E + 1 2 f(\frac{1}{2})=\frac{1}{2}E+\frac{1}{2} f(21)=21E+21

0 ≤ x ≤ 1 2 0\leq x\leq \frac{1}{2} 0x21时,我们对 f ( x ) = ∫ x 1 f ( t ) d t + 1 f(x)=\int_x^1{f(t)dt}+1 f(x)=x1f(t)dt+1两边求导,得

f ′ = − f f'=-f f=f

这是一个比较简单的常微分方程,接下来需要一点点常微分方程的知识。

d f d x = − f \frac{df}{dx}=-f dxdf=f

d f f = − d x \frac{df}{f}=-dx fdf=dx

d l n f = − d x dlnf=-dx dlnf=dx

l n f = − x + C 1 lnf=-x+C_1 lnf=x+C1

f = e − x + C 1 = C e − x f=e^{-x+C_1}=Ce^{-x} f=ex+C1=Cex

于是我们解得 f = C e − x f=Ce^{-x} f=Cex

代入 x = 0 x=0 x=0 x = 1 2 x=\frac{1}{2} x=21
{ C e 0 = E C e − 1 2 = 1 2 E + 1 2 \begin{cases} Ce^0=E \\ Ce^{-\frac{1}{2}}=\frac{1}{2}E+\frac{1}{2} \end{cases} {Ce0=ECe21=21E+21

解得 C = E = 1 2 e − 1 2 − 1 C=E=\frac{1}{2e^{-\frac{1}{2}}-1} C=E=2e2111

于是得到,当 0 ≤ x ≤ 1 2 0\leq x\leq \frac{1}{2} 0x21时, f ( x ) = e − x 2 e − 1 2 − 1 f(x)=\frac{e^{-x}}{2e^{-\frac{1}{2}}-1} f(x)=2e211ex

由于 f ( x ) f(x) f(x)关于 x = 1 2 x=\frac{1}{2} x=21对称,可对称地写出 1 2 < x ≤ 1 \frac{1}{2}<x\leq 1 21<x1的情况。于是我们可以得到 f ( x ) f(x) f(x)的表达式。

f ( x ) = { e − x 2 e − 1 2 − 1 0 ≤ x ≤ 1 2 e x − 1 2 e − 1 2 − 1 1 2 < x ≤ 1 f(x)=\begin{cases} \frac{e^{-x}}{2e^{-\frac{1}{2}}-1} &0\leq x\leq\frac{1}{2} \\ \frac{e^{x-1}}{2e^{-\frac{1}{2}}-1} & \frac{1}{2}<x\leq 1 \end{cases} f(x)= 2e211ex2e211ex10x2121<x1

E = 1 2 e − 1 2 − 1 ≈ 4.69 E=\frac{1}{2e^{-\frac{1}{2}}-1}\approx4.69 E=2e21114.69即为我们所求的答案。

可以发现,连续情形就是离散情形在 n → ∞ n\to\infty n时的情况。而指数函数在离散情形下对应的其实就是等比数列。

总结

本文先将问题作为离散情形进行处理,将问题中的n=13推广到了n为任意奇数的情况(偶数情形略有不同,也可以做,但是没有什么意义,笔者就没有单独列出了)。并且将问题推广到了 n n n + ∞ +\infty +的情形,即连续情形。从而彻底解出了王荣吉占背后的数学模型。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/191102.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入了解JVM和垃圾回收算法

1.什么是JVM&#xff1f; JVM是Java虚拟机&#xff08;Java Virtual Machine&#xff09;的缩写&#xff0c;是Java程序运行的核心组件。JVM是一个虚拟的计算机&#xff0c;它提供了一个独立的运行环境&#xff0c;可以在不同的操作系统上运行Java程序。 2.如何判断可回收垃圾…

HarmonyOS开发(一):开发工具起步

1、DevEco Studio 工具下载地址&#xff1a;HUAWEI DevEco Studio和SDK下载和升级 | HarmonyOS开发者 DevEco Studio基础配置 Node.jsOhpm 这两个都可以在进入IDE时在工具上选择下载安装 2、HelloWorld工程 打开DevEco,那么会进入欢迎页&#xff0c;点击Create Project---…

数字三角形模型 笔记

方格取数 走两次的最大值 f[k][i1][i2]来表示 k i1 j1 i2 j2; 每一个状态可由四种状态转换来&#xff0c;分别为 第一条路走下&#xff0c;第二条路走下 第一条路走下&#xff0c;第二条路走右 第一条路走右&#xff0c;第二条路走下 第一条路走右&#xff0c;第二条…

ChatGPT重磅升级 奢侈品VERTU推出双模型AI手机

2023年11月7日,OpenAI举办了首届开发者大会,CEO Sam Altman(山姆奥尔特曼)展示了号称“史上最强”AI的GPT-4 Turbo。它支持长达约10万汉字的输入,具备前所未有的长文本处理能力,使更复杂的互动成为可能。此外,GPT-4 Turbo还引入了跨模态API支持,可以同时处理图片、视频和声音,从…

Layer 2 真的为以太坊扩容了吗?

构建一个安全、对用户友好的去中心化网络的愿景&#xff0c;依赖于关键基础设施的发展。这个愿景由一个共享的经济框架支持&#xff0c;得到了亿万人的拥护。Layer 2 的扩展解决方案在构建这一基础和增强以太坊的能力方面起着至关重要的作用。这些项目相互协作&#xff0c;形成…

Arduino ESP8266使用AliyunIoTSDK.h连接阿里云物联网平台

文章目录 1、AliyunIoTSDK简介2、相关库安装3、阿里云创建产品&#xff0c;订阅发布4、对开源的Arduino ESP8266源代码修改5、使用阿里云点亮一个LED灯6、设备向阿里云上传温度数据7、项目源码 1、AliyunIoTSDK简介 AliyunIoTSDK是arduino的一个库&#xff0c;可以在arduino的…

基于若依的ruoyi-nbcio流程管理系统增加流程设计器支持自定义表单的选择与处理

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 因为之前不支持在流程设计器进行自定义业务表单的关联选择&#xff0c;所以这部分实现这个。 1、前端 对…

域名反查Api接口——让您轻松查询域名相关信息

在互联网发展的今天&#xff0c;域名作为网站的唯一标识符&#xff0c;已经成为了企业和个人网络营销中不可或缺的一部分。为了方便用户查询所需的域名信息&#xff0c;API接口应运而生。本文将介绍如何使用挖数据平台《域名反查Api接口——让您轻松查询域名相关信息》进行域名…

青少年编程学习 等级考试 蓝桥杯/NOC/GESP等比赛资料合集

一、博主愚见 在当今信息技术高速发展的时代&#xff0c;编程已经成为了一种必备的技能。随着社会对于科技人才的需求不断增加&#xff0c;青少年编程学习正逐渐成为一种趋势。为了更好地帮助青少年学习编程&#xff0c;提升他们的技能和素质&#xff0c;博主结合自身多年从事青…

c语言-数据结构-链表分割

链表分割实际上是给定一个值&#xff0c;遍历链表把链表中小于该值的节点与大于该值的节点分开&#xff0c;一般是将小于该值的节点放到链表的前面部分&#xff0c;大于该值的节点放在链表的后面部分。 链表分割示意图如下&#xff1a; 思路&#xff1a; 首先创建两条带哨兵位节…

Java18新增特性

前言 前面的文章&#xff0c;我们对Java9、Java10、Java11、Java12 、Java13、Java14、Java15、Java16、Java17 的特性进行了介绍&#xff0c;对应的文章如下 Java9新增特性 Java10新增特性 Java11新增特性 Java12新增特性 Java13新增特性 Java14新增特性 Java15新增特性 Java…

JDK并发修改异常的一个“BUG“

很多电商公司早期的架构都是基于PHP&#xff0c;所以我身边会有很多很厉害的PHP老哥&#xff0c;但现在都在写Java。昨天看到他在看Java的并发修改异常&#xff0c;正打算秀一波操作&#xff0c;却被他的一个问题难住了&#xff1a; public class ForeachTest {public static …

数据分析-numpy

numpy numpy numpy简介优点下载ndarray的属性输出数据类型routines 函数ndarray对象的读写操作ndarray的级联和切分级联切分 ndarray的基本运算广播机制&#xff08;Broadcast&#xff09;ndarry的聚合操作数组元素的操作numpy 数学函数numpy 查找和排序 写在最后面 简介 nump…

CSS 滚动捕获 scroll-snap-type

scroll-snap-type 语法实例 捕获轴 y 捕获严格程度 mandatory捕获轴 y 捕获严格程度 proximity同理看下捕获轴 x 一些注意事项兼容性 scroll-snap-type 用来指定一个滚动容器(scroll container)是否是滚动捕获容器(scroll snap container)、捕获的严格程度以及在什么方向上执行…

61基于matlab的GWO算法的参数工具箱,图形界面,目标函数的默认名称为CostFunction。

基于matlab的GWO算法的参数工具箱&#xff0c;图形界面&#xff0c;目标函数的默认名称为CostFunction。如果您查看了CostFunction.m文件&#xff0c;成本函数获取向量&#xff08;[x1 x2…xn]&#xff09;中的变量并返回目标值。可以在该文件中编写目标函数&#xff0c;也可以…

【计算机网络笔记】IP子网划分与子网掩码

系列文章目录 什么是计算机网络&#xff1f; 什么是网络协议&#xff1f; 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能&#xff08;1&#xff09;——速率、带宽、延迟 计算机网络性能&#xff08;2&#xff09;…

Perl爬虫程序的框架

Perl爬虫程序的框架&#xff0c;这个框架可以用来爬取任何网页的内容。 perl #!/usr/bin/perl use strict; use warnings; use LWP::UserAgent; use HTML::TreeBuilder; # 创建LWP::UserAgent对象 my $ua LWP::UserAgent->new; # 设置代理信息 $ua->proxy(http, ); …

ZooKeeper+Kafka+ELK+Filebeat集群搭建实现大批量日志收集和展示

大致流程&#xff1a;将nginx 服务器&#xff08;web-filebeat&#xff09;的日志通过filebeat收集之后&#xff0c;存储到缓存服务器kafka&#xff0c;之后logstash到kafka服务器上取出相应日志&#xff0c;经过处理后写入到elasticsearch服务器并在kibana上展示。 一、集群环…

Python实现WOA智能鲸鱼优化算法优化BP神经网络分类模型(BP神经网络分类算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 鲸鱼优化算法 (whale optimization algorithm,WOA)是 2016 年由澳大利亚格里菲斯大学的Mirjalili 等提…

web3 React dapp进行事件订阅

好啊&#xff0c;上文web3 React Dapp书写订单 买入/取消操作 我们已经写好了 填充和取消订单 这就已经是非常大的突破了 但是 留下了一个问题 那就是 我们执行完之后 订单的数据没有直接更新 每次都需要我们手动刷新 才能看到结果 那么 今天我们就来看解决这个问题的事件订阅 …