TOPIC:
《伊索寓言》中有一则“孩子与狼”的故事,讲的是一个小孩每天到山上放羊,山里有狼出没.第一天,他在山上喊“狼来了!狼来了!”,山下的村民闻声便去打狼,可到了山上,发现狼没有来;第二天也如此;第三天,狼真的来了,可无论小孩怎么喊叫,也没有人来救他,因为前两天他说了慌,人们不再相信他了.试用贝叶斯公式来分析此寓言中村民对这个小孩的可信度是如何下降的.
SOLUTION:
1、明确要求的东西 是基于小孩的撒谎的情况下村民还相信的概率,是条件概率,可用Bayes 解决
2、Emma........编者也不知道讲什么了,很清楚了 ^_^ hhha
CODE:
#include "stdio.h"
#include <stdbool.h>
#include "stdlib.h" // 导入的库只是编者习惯
int main(){
double i,j,k,l; // ^_^
// 输入跟读入数据
printf("设置村民一开始相信小孩的概率:");
fflush(stdout); // 因为Clion的恶心特性不得已而为之,目的清空输入缓冲区
scanf_s("%lf", &i);
printf("设置村民觉得小孩可信但说谎的概率:");
fflush(stdout);
scanf_s("%lf", &j);
printf("设置村民觉得小孩不可信但说谎的概率:");
fflush(stdout);
scanf_s("%lf", &l);
// 定义
double First_probability=i; // 设置村民一开始相信小孩的概率
double BelievingButLying_probability=j; // 设置村民觉得小孩可信但说谎的概率
double NotBelievingButLying_probability=l; // 设置村民觉得小孩不可信但说谎的概率
double LyingButBelieving_probability; // 定义题目要要求的变量
// 一个简单的循环
printf("想循环的次数:");
fflush(stdout);
int m;
scanf_s("%d", &m);
for ( int p= 0; p < m; ++p) {
LyingButBelieving_probability = (double)(i*j)/((i*j)+(1-i)*l);
double temp = LyingButBelieving_probability;
i=temp;
}
// 输出结果
printf("村民还相信小孩的概率:%lf",LyingButBelieving_probability);
}
SOME EXAMPLES:
EXPLANATIONS:
1、好啦,俗话说事不过三,编者累了 (QAQ)
2、If :我们规定低于0.2的话,村民基本就不相信小孩了
3、题目是3次不相信,这个取决你一开始给的参数是多少
CONCLUSION:
哈哈哈哈,狼小孩的故事从小听到大了,大家都不陌生。大家都是成年人,难免有时候说所谓的谎话,不过成年人带着面具生活是很正常,不过编者也与你们还是认为大家真诚交流才是最好的,这个故事通过Bayes也可以说明,一个人会因为一些事情,导致别人对你的看法会改名,通常先入为主,你一开始做的事会最先影响别人对你的看法。
说了这么多,总之诸君加油吧。
”一副能升起月亮的身体,必然驮住了无数次日落,共勉“
TIRED (00000┭┮﹏┭┮)
——时于 2023.9.18 22.13 pm