作業系統上機作業--根據萊布尼茲級數計算PI(1)(多執行緒)
pi1.c: 使用2個執行緒根據萊布尼茲級數計算PI
• 萊布尼茲級數公式: 1 - 1/3 + 1/5 - 1/7 + 1/9 - ... = PI/4
• 主執行緒建立1個輔助執行緒
• 主執行緒計算級數的前半部分
• 輔助執行緒計算級數的後半部分
• 主執行緒等待輔助執行緒執行結束後,將前半部分和後半部分相加
實現思路:
用全域性變數儲存主執行緒和副執行緒中的計算結果,然後將結果相加*4即得到結果。
#include<stdio.h>
#include<unistd.h>
#include<pthread.h>
#define NUMBER 200
double PI;
double worker_output;
double master_output;
void *worker(void *arg){
int i;
double j;
worker_output=0;
for(i=1;i<=NUMBER;i++){
j=i;
if(i%2==0)
worker_output-=1/(2*j-1);
else
worker_output+=1 /(2*j-1);
}
return NULL;
}
void master(){
int i=NUMBER+1;
double j;
master_output=0;
for(;i<=2*NUMBER;i++){
j=i;
if(i%2==0)
master_output-=1/(2*j-1);
else
master_output+=1 /(2*j-1);
}
}
int main(){
pthread_t worker_tid;
pthread_create(&worker_tid,NULL,worker,NULL);
master();
pthread_join(worker_tid,NULL);
PI=(worker_output+master_output)*4;
printf("PI: %f\n",PI);
return 0;
}
歡迎留言交流。。。
相關推薦
作業系統上機作業--根據萊布尼茲級數計算PI(1)(多執行緒)
pi1.c: 使用2個執行緒根據萊布尼茲級數計算PI • 萊布尼茲級數公式: 1 - 1/3 + 1/5 - 1/7 + 1/9 - ... = PI/4 • 主執行緒建立1個輔助執行緒
作業系統上機作業--根據萊布尼茲級數計算PI(2)(多執行緒)
pi2.c: 使用N個執行緒根據萊布尼茲級數計算PI • 與上一題類似,但本題更加通用化,能適應N個核心,需要使用執行緒引數來實現 • 主執行緒建立N個輔助執行緒 • 每個輔助執行緒計
蔡高廳老師 - 高等數學閱讀筆記 - 14 定積分 - 積分中值定理 -牛頓萊布尼茲公式-(58 ~ 64)
定積分的概念: 思想方法如下: 數學語言表達 然矩形代替曲線 1 連續函式 2 有界,有限的間斷點 3 如果是單調,有界的 60 定積分的
0082-萊布尼茲三角形
題目 萊布尼茲三角形 難度級別:B; 執行時間限制:1000ms; 執行空間限制:51200KB; 程式碼長度限制:2000000B 試題描述 如下圖
魯賓遜與萊布尼茲(修改版)
魯賓遜與萊布尼茲(修改版) 上世紀60年代,魯賓遜深入研讀萊布尼茲數學手稿(未發表的),有許多發現與心得。 魯賓遜高度讚美萊布尼茲關於實無窮小微積分的創新思想,為此,魯賓遜特推崇他為現代非標準分析的先行者。 &n
魯賓遜與萊布尼茲
魯賓遜與萊布尼茲 上世紀60年代,魯賓遜深入研讀萊布尼茲數學手稿,有許多發現。 魯賓遜高度讚美萊布尼茲關於實無窮小的創新思想,推崇他為現代非標準分析的先行者。  
萊布尼茲三角形(C++)
lse inf names ont 行數 輸出 .com namespace com 【問題描述】 如下圖所示的三角形,請編程輸出圖中排在第 n 行從左邊數第 m 個位置上的數。 【代碼展示】
寫一下萊布尼茨級數
背景:看《邏輯的引擎》這本書的時候,看到天才萊布尼茨的發現,本來是對電腦計算速度好奇的,試了下運算時間蠻長,就是了100,效果跟書本不一樣。記錄一下。 萊布尼茨級數:π/4 = 1-1/3+1/5-1/7+1/9… 越趨近極限,就越接近π/4的值。 packag
微分意義,積分意義,牛頓-萊布尼茨公式
d是微分的符號,沒有什麼實際的意義,微分就是無限的分割;“dx”就是把x軸上點無限的分割,“dy”就是把y軸無限的分割,“d2x”就是吧直線2x無限的分割,“d(x^2+1)”我想你應該知道了。 簡單的理解就是化曲線為直線; 無限的分割時間,化變速為恆速; 還有很多
高階導數的運演算法則 與 萊布尼茨公式
多個函式的線性組合的運演算法則: ∀m,n∈N,m,n≥1,[∑i=1mcifi(x)](n)=∑i=1mcif(n)i(x) 證明 n=1 時顯然成立。 設 n 時成立。則 n+1 時:
牛頓-萊布尼茨公式求積分例題
1 求∫1011+x2dx 已知ddxarctanx=11+x2 所以結果=arctan1−arctan0=π4 注:如何求ddxarctanx y=arctanx; ∴x=tany; ∴
“一個千古絕倫的大智者”萊布尼茨
►哥特弗裡德·威廉·萊布尼茨(Gottfried Wilhelm Leibniz)編者按:萊布尼
高等數學——手撕牛頓萊布尼茨公式
本文始發於個人公眾號:TechFlow,原創不易,求個關注 今天是高等數學專題的第13篇文章,我們來看看定積分究竟應該怎麼計算。 定積分的實際意義 通過之前的文章,我們基本上熟悉了定積分這個概念和它的一些簡單性質,今天終於到了正題,我們要試著來算一算這個積分了。 我們先來回憶一下對定積分的直觀感受,它可
2018/9/27 離散大作業 根據輸入命題輸出真值表及主析取(合取)正規化
zl老師佈置的作業,網上程式碼都好長,自己寫一個才200行 自己寫就是很開心,抄程式碼有什麼意思呢 恕我直言,無腦copy程式碼就像偷人孩子的人販子 課內作業 /* 符號註記: + * - -> <->
作業系統上機題目(多執行緒2)
主執行緒建立4個子執行緒T1、T2、T3、T4, 主執行緒在4個子執行緒退出後,才退出 執行緒T1、T2、T3、T4的執行時程式碼如下: #include <unistd.h> // sleep函式宣告在該標頭檔案中 void *T1_e
博客作業(1,2,4,6,7)
課本 發展 精確 必須 國足 font 是不是 log 動手 此作業的要求參見[https://edu.cnblogs.com/campus/nenu/2018fall/homework/2101] 1. 建博客(1分) 在 cnblogs.com (博客園)建賬號(1分)
(java)leetcode717 1位元與2位元字元 即根據不同的長度對字元進行解碼(1-bit and 2-bit Characters)
題目描述: 有兩種特殊字元。第一種字元可以用一位元0來表示。第二種字元可以用兩位元(10 或 11)來表示。 現給一個由若干位元組成的字串。問最後一個字元是否必定為一個一位元字元。給定的字串總是由0結束。 示例1: 輸入: bits = [1, 0, 0]
python學習第34天之udp的套接字、套接字的多執行緒socketserver模組的使用、作業系統理論
一、udp的套接字 Udp協議又叫資料報協議, 特點:每次傳送資料自帶報頭,即使傳送為0也會自帶報頭,所以不會報錯;一端發一次資料。另一端也只能收一次資料 服務端: import socket server=socket.socket(socket.AF_INET,socket.SOCK_DG
作業系統,核心定時器:使用“訊號”建立一種使用者空間機制來測量一個多執行緒程式的執行時間。
核心是一個作業系統的核心。它負責管理系統的程序、記憶體、裝置驅動程式、檔案和網路系統,決定著系統的效能和穩定性。 定時器是Linux提供的一種定時服務的機制,它在某個特定的時間喚醒某個程序來進行工作。核心在時鐘中斷髮生後檢測各定時器是否到期,在li
【OS大作業】用多執行緒統計txt檔案中字元個數(Java實現)
問題描述 給定一個txt檔案,利用不同個數的執行緒查詢檔案中某字元的個數,探究執行緒個數與查詢時間的關係。 本作業程式碼使用JAVA實現,版本為10.0.2,使用的IDE為Eclipse4.9.0. 結果測試所用的txt檔案內容為英文,編碼格式為UTF-8。 原始碼 第一版程式碼:(