gammavol.c
来自「Rtree R树的C语言实现 ,学习R树的朋友们共同学习,向你们学习」· C语言 代码 · 共 36 行
C
36 行
#include <stdio.h>
#include <math.h>
#ifndef M_PI
# define M_PI 3.1415926535
#endif
#ifndef ABS
# define ABS(a) ((a) > 0 ? (a) : -(a))
#endif
#define EP .0000000001
const double log_pi = log(M_PI);
double sphere_volume(double dimension)
{
double log_gamma, log_volume;
log_gamma = gamma(dimension/2.0 + 1);
log_volume = dimension/2.0 * log_pi - log_gamma;
return exp(log_volume);
}
int main()
{
double dim=0, delta=1;
while(ABS(delta) > EP)
if(sphere_volume(dim + delta) > sphere_volume(dim))
dim += delta;
else
delta /= -2;
printf("max volume = %.10f at dimension %.10f\n",
sphere_volume(dim), dim);
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?