public class Main2 {
public static void main(String[] args) {
double ltargetPi=3.1415926;
double rtargetPi=3.1415927;
int iteration=calculatePi(ltargetPi,rtargetPi);
System.out.println("在"+ltargetPi+'-'+rtargetPi+"范围内,进行了"+iteration+"次迭代!");
}
//不断更新calculatePi的值以至于获取逼近的Π的值
public static int calculatePi(double ltargetPi,double rtargetPi){
double calculatePi=0.0;//存储Π的值。下面计算的时候会一直更新这个值,一直去逼近Π
int sign=1;//表示正负号的
int denominator=1;//表示分母 每次迭代会+2
int iteration=0;//表示迭代的次数,0表示没有进行迭代
//每次迭代逼近目标的Π值
//每次循环计算的是精度,大于的话就是还没到精度就会一直循环下去
while (true){
double term=sign*(4.0/denominator);//必须是x.0的形式不然不是double
calculatePi+=term;//计算当前的Π值
sign*=-1;//变换符号
denominator+=2;//更新分母
iteration++;//更新迭代次数
if (ltargetPi<=calculatePi&&calculatePi<=rtargetPi){
break;
}
}
return iteration;//得到迭代次数
}
}
看了这个文章,里面有专门的c的实现,我这边简单的使用python进行了实现,实现了两个版本,一个是python遍历像素,一个是使用numpy加速,代码如下:
import time
import numpy as np
import cv2def l…
参考资料:
https://zhuanlan.zhihu.com/p/114538417https://www.cnblogs.com/pinard/p/7243513.html
1 背景知识
1.1 统计语言模型
统计语言模型是基于语料库构建的概率模型,用来计算一个词串 W ( w 1 , w 2 , ⋯ , w T ) W(w_1,w_2,\cdots,w_T) W…