今天无聊弄得C++

// chp2.cpp : 定义控制台应用程序的入口点。
//#include "stdafx.h"
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <math.h>//数据结构
//数组(Array)、堆栈(Stack)、队列(queue)、链表(Linked List)、树(Tree)、图(Grahp)、堆(Heap)、散列表(Hash)//
// 判断是否为2的n次幂
bool PowofTwo(int n)
{return !(n & (n-1));
}//
// 利用割圆术求pi的近似值, 假设有一个半径是1的圆,第一次切割在其内部内接正六边形。
// 正六边形的变长为y1, 根据几何知识,y1=1, 圆周长近似为L1=6*y1
// 第二次切割,在正六边形的基础上,扩展为12边形时,边长为y2, y2^2=2-sqrt(4-y1^2)
// pi≈3*2^n*yn
double cyclotomic(int n)
{double k, yy;int i;long s;double pi = 0.0f;i = 1;							//第一次切割s = 6;							//初始为6边形yy = 1.0f;k = 3.0f;while (i<=n){   pi = k*sqrt(yy);printf("第%d次切割,为正%ld多边形,PI近似为%.24f\n", i, s, pi);s *= 2;						//边数加倍yy = 2-sqrt(4-yy);			//内接多边形的变长的平方值k *= 2.0f;					//累积前面的系数3*2^ni++;}return pi;
}//
// 蒙特卡罗算法(Monte Carlo)
// 一个半径为1的圆,他在第一象限的1/4圆面积为pi/4
// 在上面接一个正方形,面积为1,两者相比pi/4, 概率算法
// 随即产生一个点,判断是不是在圆形区域,比上总点数,即为pi/4
double MontePI(int n)
{int sum;double pi;double x, y;sum = 0;srand((unsigned)time(NULL));for (int i=0; i<n; i++){x = (double)rand()/RAND_MAX;		//产生0~1的随机数y= (double)rand()/RAND_MAX;if ((x*x + y*y) <= 1)sum++;}pi = 4.0*sum/n;return pi;
}int _tmain(int argc, _TCHAR* argv[])
{int *pnums = new int[100];memset(pnums, 0, 100);srand((unsigned)time(NULL));int num8;int temp;for (int i = 0; i<100; i++){pnums[i] = rand()%500;num8 = (pnums[i] + 0x7)&~0x7;		//两种方法将数字提升到8的倍数temp = (pnums[i] + 0x7)/8*8;printf("%d->%d, %d", pnums[i], num8, temp);if (PowofTwo(pnums[i])){printf("--->pow of two");}printf("\n");		//换行}printf("\n\n");//clean:delete[] pnums;////计算pi的近似值printf("计算pi的近似值\n");cyclotomic(12);printf("\n\n");for (int i=1; i<10; i++){printf("Monte Carlo pi = %.24f\n", MontePI(i*1000) );}return 0;
}

392->392, 392
35->40, 40
51->56, 56
72->72, 72
245->248, 248
15->16, 16
158->160, 160
252->256, 256
158->160, 160
122->128, 128
154->160, 160
334->336, 336
82->88, 88
96->96, 96
192->192, 192
101->104, 104
116->120, 120
52->56, 56
94->96, 96
257->264, 264
58->64, 64
70->72, 72
337->344, 344
67->72, 72
382->384, 384
142->144, 144
25->32, 32
492->496, 496
14->16, 16
469->472, 472
217->224, 224
363->368, 368
387->392, 392
317->320, 320
233->240, 240
415->416, 416
199->200, 200
422->424, 424
217->224, 224
472->472, 472
184->184, 184
498->504, 504
92->96, 96
244->248, 248
172->176, 176
44->48, 48
133->136, 136
390->392, 392
440->440, 440
373->376, 376
341->344, 344
246->248, 248
214->216, 216
183->184, 184
465->472, 472
103->104, 104
83->88, 88
123->128, 128
141->144, 144
37->40, 40
71->72, 72
152->152, 152
333->336, 336
257->264, 264
62->64, 64
240->240, 240
170->176, 176
292->296, 296
490->496, 496
139->144, 144
32->32, 32--->pow of two
55->56, 56
190->192, 192
54->56, 56
376->376, 376
163->168, 168
35->40, 40
273->280, 280
233->240, 240
79->80, 80
21->24, 24
436->440, 440
59->64, 64
485->488, 488
4->8, 8--->pow of two
118->120, 120
97->104, 104
123->128, 128
383->384, 384
215->216, 216
482->488, 488
315->320, 320
369->376, 376
433->440, 440
102->104, 104
305->312, 312
290->296, 296
417->424, 424
451->456, 456
363->368, 368




计算pi的近似值
第1次切割,为正6多边形,PI近似为3.000000000000000000000000
第2次切割,为正12多边形,PI近似为3.105828541230249800000000
第3次切割,为正24多边形,PI近似为3.132628613281236900000000
第4次切割,为正48多边形,PI近似为3.139350203046872100000000
第5次切割,为正96多边形,PI近似为3.141031950890529800000000
第6次切割,为正192多边形,PI近似为3.141452472285344300000000
第7次切割,为正384多边形,PI近似为3.141557607911622100000000
第8次切割,为正768多边形,PI近似为3.141583892148935900000000
第9次切割,为正1536多边形,PI近似为3.141590463236761700000000
第10次切割,为正3072多边形,PI近似为3.141592106043048300000000
第11次切割,为正6144多边形,PI近似为3.141592516588154600000000
第12次切割,为正12288多边形,PI近似为3.141592618640789400000000




Monte Carlo pi = 3.192000000000000200000000
Monte Carlo pi = 3.206000000000000000000000
Monte Carlo pi = 3.173333333333333300000000
Monte Carlo pi = 3.141000000000000000000000
Monte Carlo pi = 3.138399999999999900000000
Monte Carlo pi = 3.133999999999999900000000
Monte Carlo pi = 3.129142857142857000000000
Monte Carlo pi = 3.123499999999999900000000
Monte Carlo pi = 3.125777777777778000000000
请按任意键继续. . .




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

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

相关文章

“80后”作家应扮演更重要的角色

曾经在《北京文学》月刊社做副主编&#xff0c;现在做文学批评家和图书策划人&#xff0c;在他的眼里&#xff0c;新生代作家是文学的未来&#xff0c;也是文学不会消亡的保证。他对新生代的关注是一贯的。他策划过“60年代出生作家小说大展”、“好看小说大展”“新女性随笔系…

串口通信的收发程序

串口通信的收发程序 串口时钟是指异步串行通信,异步串口是指UART(Universal Asynchronous Receiver/Transmitter),通用异步接收/发送。UART是一个并行输入成为串行输出的芯片。通常集成在主板上。 消息帧是由一个低起始位开始,后面是7个或8个数据位,一个可用的奇偶位或几个…

网络游戏server编程,第一章笔记

1、什么是模块化&#xff1f; 现在的服务器程序大致分为三类&#xff0c;引擎模块&#xff0c;游戏逻辑模块以及管理模块。 引擎模块的功能主要是网络通信&#xff0c;加密&#xff0c;内存管理等&#xff1b; 游戏逻辑模块随着游戏的不同&#xff0c;内容也不同&…

让阅读成为一种习惯

多媒体时代的来临&#xff0c;使传统的纸质阅读受到前所未有的挑战。信息爆炸、思维与写作的即时性和碎片化&#xff0c;已经让大众无法感受知识的价值、读书的乐趣以及对心灵交流的渴望。面对这种客观存在&#xff0c;我们或许无力改变&#xff0c;但作为文化的传播者&#xf…

Atmosphere 1.0:支持Java/JavaScript的异步通信框架

Atmosphere 1.0是一个新的Java/Scala/Groovy框架&#xff0c;它试图将Web浏览器与应用服务器之间的通信抽象出来。在Web Socket、HTML5服务器端事件和其他特定于应用服务器的解决方案可用时&#xff0c;该框架可以透明地支持&#xff0c;此外还可将长轮询作为一种备选方案。\u0…

图像处理的笔记

图像处理的笔记 进行图像识别的算法时&#xff0c;先在MATLAB中仿真&#xff0c;注意不要使用MATLAB的函数实现你想要的功能&#xff0c;比如灰度图像的反向、二值化。如果实在需要用到函数&#xff0c;可以在MATLAB的命令窗口中输入“help 函数”进入函数说明文档&#xff0c…

Java字符串与包装类

/*** 字符串与包装类*/package com.org.lxh;import java.util.Date;import java.util.regex.Matcher;import java.util.regex.Pattern;/*** author Administrator**/public class Chp8 {/** 验证电话号码*/public static String checkPhoneNumber(String text){if(text null |…

Scala语言将加入宏指令

Scala开发团队正在将实验版宏指令加入到即将发行的2.10版中。Scala宏指令提供了编译时元编程的高级形式。Scala宏网站描述道&#xff1a;\u0026#xD;\n\u0026#xD;\n“宏指令显著简化了代码分析和代码生成&#xff0c;这使得它们成为处理大量现实用例的一种可选工具。传统上涉及编…

针对C++和Delphi的LiveBindings一瞥

绑定表达式&#xff08;Binding expression&#xff09;并不是新概念&#xff0c;XAML和Flex开发者主要就依靠这个。但除C/CX&#xff08;只用于WinRT编程&#xff09;之外&#xff0c;原生编程语言中通常见不到这种概念。不过为VCL和FireMonkey设计的LiveBindings却是个例外。…

图像处理的基础

图像处理的基础 图像作为人类感知世界的视觉基础,是人类获取信息、表达信息和传递信息的重要手段。 多数图像传感器的输出是连续的电压波形信号,这些波形的幅度和空间特性都与其所感知的光照有关。为了产生一幅数字图像,我们需要把连续的感知数据转换为数字形式,这个转换…

查询计算机端口号被谁占用了

"到底是谁占用了80端口,该怎么查,怎么终止它?",这里就简单讲解一下,在windows下如何查看80端口占用情况?是被哪个进程占用?如何终止等. 这里主要是用到windows下的DOS工具,点击"开始"--"运行",输入"cmd"后点击确定按钮,进入DOS窗口…

SPI分配传感器的寄存器

SPI分配传感器的寄存器 SPI分配寄存,来驱动传感器。或者将一些指令传出来给UART由PC端来控制。 信号名称方向位宽(bit)说明spi_com_clkI1spi通信模块时钟sys_rst_nI1系统复位,低电平有效wr_enI1写使能,主机给从机发送数据的使能信号,当wr_en为1时主机才能给从机发送数据…

OpenGL样板程序,会转动的正方形

一个OpenGL样板程序&#xff0c;环境为VS2010 // Test_OpenGL.cpp : 定义控制台应用程序的入口点。 ///** 1、OpenGL工具函数库&#xff08;GLU&#xff09;&#xff0c;GLU函数实用glu前缀** 2、窗口系统&#xff0c;以支持OpenGL渲染&#xff0c;对于X窗口系统是GLX函数&…

Hadoop入门学习笔记——五、在虚拟机中部署Hive

视频课程地址&#xff1a;https://www.bilibili.com/video/BV1WY4y197g7 课程资料链接&#xff1a;https://pan.baidu.com/s/15KpnWeKpvExpKmOC8xjmtQ?pwd5ay8 Hadoop入门学习笔记&#xff08;汇总&#xff09; 目录 五、在虚拟机中部署Hive5.1. 在node1虚拟机安装MySQL5.2.…

ECC的代码实现

ECC的代码实现 数据校验介绍:  通俗的说&#xff0c;就是为保证数据的完整性&#xff0c;用一种指定的算法对原始数据计算出的一个校验值。接收方用同样的算法计算一次校验值&#xff0c;如果和随数据提供的校验值一样&#xff0c;就说明数据是完整的。 如果是时序或者电路方…

FPGA图像处理的开发流程

FPGA图像处理的开发流程 1、需求分析及问题描述 问题描述应该清楚地描述问题而不是解决方法。它应该包括系统需要做什么、为什么要做,而不包括怎么做。 为了描述更具体,至少需要讨论三个方面。 第一是系统功能,也就是系统需要做什么。在一个图像处理应用中,需要详细说明图…

C/C++实现模糊控制,借助MATLAB辅助设计和fis.c文件

上一篇文章&#xff08;C /C语言实现模糊控制&#xff09;介绍了C/C中实现模糊控制该怎么做&#xff0c;开始提到的MATLAB模糊控制的C/C模糊控制接口fis.c库&#xff0c;不过这个文件有点老&#xff0c;在用VS2010编译的时候一大堆错误&#xff0c;在网上找关于C中使用 fis.c 的…

转载:Windows CE内存管理

内存管理如果你在写Windows CE 程序中遇到的最重要的问题&#xff0c;那一定是内存问题。一个WinCE 系统可能只有4MB 的RAM&#xff0c;这相对于个人电脑来说是十分少的&#xff0c;因为个人电脑的标准配置已经到了128MB 甚至更多。事实上&#xff0c;运行WinCE 的机器的内存十…

一些比较使用的技巧

一些比较使用的技巧 1、如何得到一个信号的上升沿 注意:时序逻辑有打一拍的特性,组合逻辑没有。 input vsync; reg vsync_r; reg vsync_r2; wire vsync_r2_n; wire vsync_rise;always@(posedge clk) beginvsync_r <= vsync;vsync_r2 <= vsync_r; endassign vsync_r2_…

2012年我读过的十本好书

1、《世上的光》是俄罗斯导演安德烈塔可夫斯基的拍立得摄影集。从中我们可以感受他在拍电影之余的个人生活&#xff0c;他的妻子&#xff0c;他的爱子以及梦幻般的乡村景色。而他配的文字更是让我们笃信他的确是个电影诗人。“影像&#xff0c;是真理的印记”“影像是谷粒&…