标签: pi

如何确定我的pi计算是否准确?

我正在尝试各种方法来实现一个顺序给出pi数字的程序.我尝试了泰勒系列方法,但事实证明它非常缓慢地收敛(当我在一段时间后将我的结果与在线值进行比较时).无论如何,我正在尝试更好的算法.

因此,在编写程序时,我遇到了问题,就像所有算法一样:我怎么知道n我计算的数字是准确的?

language-agnostic algorithm math pi

765
推荐指数
5
解决办法
12万
查看次数

获得π值的最快方法是什么?

我正在寻找获得π值的最快方法,作为个人挑战.更具体地说,我使用的方法不涉及使用#define常量M_PI,或者对数字进行硬编码.

下面的程序测试了我所知道的各种方式.从理论上讲,内联汇编版本是最快的选择,但显然不便于携带.我已将其作为基线与其他版本进行比较.在我的测试中,使用内置4 * atan(1)函数,在GCC 4.2上版本最快,因为它会自动将其折叠atan(1)为常量.根据-fno-builtin指定,atan2(0, -1)版本最快.

这是主要的测试程序(pitimes.c):

#include <math.h>
#include <stdio.h>
#include <time.h>

#define ITERS 10000000
#define TESTWITH(x) {                                                       \
    diff = 0.0;                                                             \
    time1 = clock();                                                        \
    for (i = 0; i < ITERS; ++i)                                             \
        diff += (x) - M_PI;                                                 \
    time2 = clock();                                                        \
    printf("%s\t=> %e, time => %f\n", #x, diff, diffclock(time2, time1));   \
}

static inline double
diffclock(clock_t time1, clock_t time0)
{ …
Run Code Online (Sandbox Code Playgroud)

language-agnostic unix algorithm performance pi

315
推荐指数
21
解决办法
5万
查看次数

为什么Python的无穷大散列具有??的数字?

Python中无穷大的哈​​希值具有与pi匹配的数字:

>>> inf = float('inf')
>>> hash(inf)
314159
>>> int(math.pi*1e5)
314159
Run Code Online (Sandbox Code Playgroud)

这仅仅是巧合还是故意的?

python math floating-point hash pi

236
推荐指数
3
解决办法
3万
查看次数

我应该使用scipy.pi,numpy.pi还是math.pi?

在使用SciPy的和NumPy的,我应该用一个项目scipy.pi,numpy.pimath.pi

python pi numpy scipy

131
推荐指数
3
解决办法
14万
查看次数

为什么定义PI = 4*ATAN(1.d0)

定义PI的动机是什么?

PI=4.D0*DATAN(1.D0)
Run Code Online (Sandbox Code Playgroud)

在Fortran 77代码中?我理解它是如何工作的,但是,理由是什么?

fortran pi fortran77

56
推荐指数
5
解决办法
5万
查看次数

如何长期打印

我正在做一个接近PI的程序,我试图使用很长时间,但它不起作用.这是代码

#include<stdio.h>
#include<math.h>
typedef long long num;
main(){
    num pi;
    pi=0;
    num e, n;
    scanf("%d", &n);
    for(e=0; 1;e++){
      pi += ((pow((-1.0),e))/(2.0*e+1.0));
      if(e%n==0)
        printf("%15lld -> %1.16lld\n",e, 4*pi);
      //printf("%lld\n",4*pi);
    }
}
Run Code Online (Sandbox Code Playgroud)

c pi long-integer

49
推荐指数
2
解决办法
12万
查看次数

如何计算pi(π)?

如何编写一个将pi(π)返回给定小数位数的函数?

速度不是问题.我一直在看http://bellard.org/pi/,但我仍然不明白如何获得pi的第n位数.

algorithm math pi

34
推荐指数
7
解决办法
3万
查看次数

可以在合理的时间内在pi中找到任何有限位串吗?

所以,不久前我读了一个像这样的笑话:

"永远不要用二进制来计算pi - 因为它无限地进行并且是随机的,它理论上包含每个有限的位串.因此,你将拥有所有受版权保护的材料,并承担一些严重的罚款."

这显然是幽默的,但它让我思考.如果每个有限位串都存在于pi的二进制表示中,是否可以将其用作传输数据的方法?

例如,假设我想传输一个可以解释为jpeg图像的位字符串.我不是直接发送信息,而是在pi的数字内找到它的位置,并简单地发送pi数字中第一位的位置,以及字符串的长度.

这对我来说似乎很简单,但这里显而易见的问题是,即使是前几万亿个数字内找到这个字符串的概率也非常小.因此,最终可能需要花费大量时间才能找到.

我的想法是,几台机器可以专门用于在pi中搜索大文件,然后创建所有起始位置的索引.因此,每次计算只需要发生一次,然后从那时起可以非常快速地传输该信息.

所以你怎么看?这完全可行,还是这些计算需要花费太多时间?

谢谢阅读!如果我忽略了任何发布指南,我会道歉,如果我在这个论坛中提出第一个问题.

编辑:

感谢您的快速回复,伙计们!我认为我的推理有错误,很高兴知道为什么!

algorithm complexity-theory pi communication

29
推荐指数
4
解决办法
3534
查看次数

如何在java中使用math.pi

我在转换这个公式时遇到了问题V = 4/3 ? r^3.我用Math.PIMath.pow,但是这是问题的开始位置.我得到这个错误(每次),

';' 预期

此外,直径变量不起作用.那里有错误吗?

import java.util.Scanner;

import javax.swing.JOptionPane;

public class NumericTypes    
{
    public static void main (String [] args)
    {
        double radius;
        double volume;
        double diameter;

        diameter = JOptionPane.showInputDialog("enter the diameter of a sphere.");

        radius = diameter / 2;

        volume = (4 / 3) Math.PI * Math.pow(radius, 3);

        JOptionPane.showMessageDialog("The radius for the sphere is "+ radius
+ "and the volume of the sphere is ");
    }
}
Run Code Online (Sandbox Code Playgroud)

java pi

29
推荐指数
1
解决办法
40万
查看次数

如何在C#中计算PI?

如何使用C#计算PI的值?

我以为它会通过一个递归函数,如果是这样,它会是什么样子,是否有任何数学公式支持它?

我对性能不太挑剔,主要是从学习的角度来看如何进行.

c# pi

27
推荐指数
4
解决办法
6万
查看次数