for循环计算圆周率_C语言并行十亿次求圆周率

一、基本原理

所以,圆周率可由上式积分结果乘4求得!

二、原始代码

#include <stdio.h>
#include <omp.h>
double step;
void main()
{
    
	for(int NUM_THREADS=1; NUM_THREADS<=20; NUM_THREADS ++)
	{
    
	printf("NUM_THREADS is: %dn", NUM_THREADS);
	long num_steps = 1000000000;
	double x, pi, sum[NUM_THREADS];
	step = 1.0/(double)num_steps;
	omp_set_num_threads(NUM_THREADS);
	double t_start, t_end;
	t_start = omp_get_wtime();
	#pragma omp parallel
	{
    
	double x;
	int i;
	int id; id = omp_get_thread_num();
	for (i = id, sum[id] = 0.0; i<num_steps; i = i + NUM_THREADS)
		{
    
		x = (i - 0.5)*step;
		sum[id] += 4.0/(1.0 + x*x);
		}
	}
	int j;
	for(j=0,pi=0.0; j<NUM_THREADS; j++) pi += sum[j] * step;
	t_end = omp_get
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值