蒙特卡诺近似与PBM
介绍蒙特卡诺近似的例子代码
- #include<fstream>
- #include<iostream>
- #include<cstdlib>
- #include<cstdio>
- #include<string>
- #include<ctime>
- #include<memory>
- using std::ifstream;
- using std::ofstream;
- using std::string;
- using std::cout;
- using std::endl;
- using std::ios;
- using std::unique_ptr;
- double randx()
- {
- return rand() % / (double);
- }
- int main(void)
- {
- ifstream ifs("D:/tex.pbm");
- string header;
- uint32_t w, h, l;
- ifs >> header;
- ifs >> w >> h >> l;
- cout << "w: " << w << " ,h: " << h << " ,l: " << l << endl;
- ifs.ignore();
- unsigned char* pixles = new unsigned char[w * h * ];
- ifs.read((char*)pixles, w * h * );
- int nsamples = ;
- srand(time());
- float avgr = , avgg = , avgb = ;
- float sumr = , sumg = , sumb = ;
- for (int i = ; i < nsamples; i++)
- {
- float x = randx() * w;
- float y = randx() * h;
- int n = ((int)(y * w) + int(x)) * ;
- sumr += pixles[n];
- sumg += pixles[n + ];
- sumb += pixles[n + ];
- }
- sumr /= nsamples;
- sumg /= nsamples;
- sumb /= nsamples;
- for (int i = ; i < h; i++)
- {
- for (int j = ; j < w; j++)
- {
- int n = (i * w + j) * ;
- avgr += pixles[n];
- avgg += pixles[n + ];
- avgb += pixles[n + ];
- }
- }
- avgr /= w * h;
- avgg /= w * h;
- avgb /= w * h;
- printf("Average: %0.2f %0.2f %0.2f \n", avgr, avgg, avgb);
- printf("Aproximation: %0.2f %0.2f %0.2f \n", sumr, sumg, sumb);
- delete pixles;
- system("pause");
- return ;
- }
蒙特卡诺近似与PBM的更多相关文章
- R语言与正态性检验
1.Kolmogorov-Smirnov正态性检验 Kolmogorov-Smirnov是比较一个频率分布f(x)与理论分布g(x)或者两个观测值分布的检验方法,若两者间的差距很小,则推论该样本取自某 ...
- 蒙特罗卡π算法(C++语言描述)
圆的面积计算公式为:S=π*r*r 将圆放到一个直角坐标系中,如图黄色部分的面积是S/4=(π*r*r)/4;如果我们将取一个单位圆,则S/4=π/4. 因为是单位圆,半径为1,所以图中红色正方形的面 ...
- WPF弹出带蒙板的消息框
效果图 思路 拿到父级窗体的内容,放入一个容器里,再在容器里放入一个半透明层.将整个容器赋给父级窗体的内容. 关闭时反向操作. 代码 消息窗弹出时 /// <summary> /// 弹出 ...
- 设置 tableview 的背景颜色,总是有蒙层
1.给tableview添加了背景图片后, cell 总是有一层蒙层蒙着,很阴暗. 2.实验以后才发现背景图片被放在了 cell 的后面.
- 长文丨papi、咪蒙、罗胖之后,内容创业的机会在哪儿
一.内容的一年 app死了,内容永生! 2016年,创业圈画风突变,昨天还在激辩java和PHP谁更好的技术宅们.还在梦想着成为第二个乔布斯改变世界的产品狗们.还在忽悠着用O2O横扫传统行业的小老板们 ...
- Replication的犄角旮旯(六)-- 一个DDL引发的血案(上)(如何近似估算DDL操作进度)
<Replication的犄角旮旯>系列导读 Replication的犄角旮旯(一)--变更订阅端表名的应用场景 Replication的犄角旮旯(二)--寻找订阅端丢失的记录 Repli ...
- 蒙特·卡罗算法的Python实现
一 背景 此算法诞生的背景是: 曼哈顿计划,有极大的计算需求. 计算机刚开始发展,最适合做计算. 蒙特卡洛算法理论基础是概率论,实际就是暴力计算逼近理想结果.正是在以上两个背景下,它刚好得到了极大的应 ...
- PRML读书会第十章 Approximate Inference(近似推断,变分推断,KL散度,平均场, Mean Field )
主讲人 戴玮 (新浪微博: @戴玮_CASIA) Wilbur_中博(1954123) 20:02:04 我们在前面看到,概率推断的核心任务就是计算某分布下的某个函数的期望.或者计算边缘概率分布.条件 ...
- CSU 1328: 近似回文词
省赛的A题...现场都没什么人做...其实就一暴力水题......坑死了... 1328: 近似回文词 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 1 ...
随机推荐
- flask 实现登录 登出 检查登录状态 的两种方法的总结
这里我是根据两个项目的实际情况做的总结,方法一(来自项目一)的登录用的是用户名(字符串)和密码,前后端不分离,用form表单传递数据:方法二用的是手机号和密码登录,前后端分离,以json格式传递数据, ...
- [OI]Noip 2018总结(普及)
考砸了,还有原谅我代码十分有限的可读性. 一个人的真正伟大之处就在于他能够认识到自己的渺小.——保罗 从一年前初一九月到现在18年10月接触OI已经有一年了.几次模拟赛也自我感觉良好,都过了一等的线, ...
- CentOS下安装nvm
1安装版本管理工具git yum install git 查看git版本 git --version 2 安装Node.js版本管理工具nvm curl -o- https://raw.githubu ...
- BZOJ3028食物——生成函数+泰勒展开
题目描述 明明这次又要出去旅游了,和上次不同的是,他这次要去宇宙探险!我们暂且不讨论他有多么NC,他又幻想了他应 该带一些什么东西.理所当然的,你当然要帮他计算携带N件物品的方案数.他这次又准备带一些 ...
- CF618G(利用浮点数精度+矩乘优化DP)
这题真的太神辣,%了一发题解,原来还能这么搞QWQ 设\(A_{i,j}\)表示不加任何限制时,第\(i\)个格子会出现权值为\(j\)的史莱姆的概率,则有: \[A_{i,j}=A_{i,j-1}* ...
- 欧拉筛法模板and 洛谷 P3383 【模板】线性筛素数(包括清北的一些方法)
题目描述 如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内) 输入格式 第一行包含两个正整数N.M,分别表示查询的范围和查询的个数. 接下来M行每行包含一个不小于1 ...
- Meterpreter提权详解
0x01 Meterpreter自动提权 1.生成后门程序 我们在kali的命令行下直接执行以下命令获得一个针对windows的反弹型木马: msfvenom -p windows/meterpr ...
- CloseHandel(_beginthreadex): 只是关闭了线程句柄对象,并不会结束线程。
今天在测试程序的时候,在[任务管理器]中发现进程序的句柄随着多线程的不断运行,会不断的 +1. 发现原来在我的代码中,启动线程后都没有显式的调用 CloseHandle() 来关闭线程句柄. 当我准备 ...
- 关于Java____________Object类
一说Java 不聊聊Object 如何说你了解Java 不多说 具体看源码去 下面是Object的方法 以及方法的作用如下 protected Object clone () ...
- Java网络通信协议、UDP、TCP类加载整理
网络通信协议 网络通信协议 网络通信协议有很多种,目前应用最广泛的是TCP/IP协议(Transmission Control Protocal/Internet Protoal传输控制协议/英特网互 ...