acm中计算几何的一些题目对精度有较大要求,能不能说说要注意哪些地方该用精度判断
发布网友
发布时间:2022-12-21 07:00
我来回答
共2个回答
热心网友
时间:2023-10-06 09:11
主要就是比较两个double型的数的边界的时候。
double a,b
a==b(会出错)
a<=b(两个相等的时候可能出错)
a>=b(两个相等的时候可能出错)
分别改成
double q=1e-9;(这个是自己可以定义的误差)
fabs(a-b)<=q
a<=b+q
a+q>=b
主要就是防止相等的时候会出错。。。
热心网友
时间:2023-10-06 09:12
1 四则运算中 除法运算会导致数据不准确,因此尽量减少除法的运算次数
例如计算 a/b+c/d = (a*d+c*b)/(b*d)
2 判断相等的时候 可以用绝对值的差 是否小于一个特殊值t
这个t要自己取了,像1楼那样1e-9就很不错
3 还有一些特殊数据啦,比如Pai 的取值,不要取什么3.141592656....
直接Pai = acos(-1.0)
好像想不起其他的来了,还有 开跟 之类的运算 也会数据丢失,允许的话尽量减少开跟次数,想不起来了,2分拿走