﻿{"id":949,"date":"2013-05-06T19:23:08","date_gmt":"2013-05-06T10:23:08","guid":{"rendered":"http:\/\/yucchi.jp\/blog\/?p=949"},"modified":"2013-05-08T19:47:35","modified_gmt":"2013-05-08T10:47:35","slug":"%e5%86%86%e5%91%a8%e7%8e%87%e3%82%92-machins-formula-%e3%81%a7%e6%b1%82%e3%82%81%e3%82%8b","status":"publish","type":"post","link":"http:\/\/yucchi.jp\/blog\/?p=949","title":{"rendered":"\u5186\u5468\u7387\u3092 Machin&#8217;s formula \u3067\u6c42\u3081\u308b"},"content":{"rendered":"<p>\u4e00\u5e74\u8fd1\u304f\u524d\u306b\u5186\u5468\u7387\u3092\u30e2\u30f3\u30c6\u30ab\u30eb\u30ed\u6cd5\u3092\u5229\u7528\u3057\u3066\u6c42\u3081\u308b\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u7d44\u3093\u3060\u3002<\/p>\n<p>\u4eca\u56de\u306f \u30de\u30c1\u30f3\u306e\u516c\u5f0f ( Machin&#8217;s formula ) \u3092\u5229\u7528\u3057\u3066\u307f\u3088\u3046\u3068\u601d\u3046\u3002<\/p>\n<p>\u305d\u3057\u3066\u6841\u6570\u3068\u7cbe\u5ea6\u3082\u4e0a\u3052\u3066\u307f\u305f\u3044\u3068\u601d\u3063\u3066\u3053\u306e\u65b9\u6cd5\u3092\u9078\u629e\u3057\u3066\u307f\u305f\u3002<\/p>\n<p>\u307e\u305a\u3001\u30de\u30c1\u30f3\u306e\u516c\u5f0f\u3068\u306f\u6b21\u306e\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u308b\u3002<\/p>\n<p><a href=\"http:\/\/yucchi.jp\/blog\/wp-content\/uploads\/2013\/05\/ifrm0001.gif\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" style=\"border: 0px currentColor; padding-top: 0px; padding-right: 0px; padding-left: 0px; display: inline; background-image: none;\" title=\"ifrm0001\" alt=\"ifrm0001\" src=\"http:\/\/yucchi.jp\/blog\/wp-content\/uploads\/2013\/05\/ifrm0001_thumb.gif\" width=\"363\" height=\"47\" border=\"0\" \/><\/a><\/p>\n<p>\u3053\u306e\u516c\u5f0f\u306e\u8a3c\u660e\u306f\u4e09\u89d2\u95a2\u6570\u306e\u516c\u5f0f\u3092\u5229\u7528\u3057\u3066\u8a3c\u660e\u3067\u304d\u307e\u3059\u3002<\/p>\n<p>\u500d\u89d2\u516c\u5f0f\u3092\u4e8c\u5ea6\u4f7f\u3044\u3001\u52a0\u6cd5\u5b9a\u7406\u3067\u3068\u3069\u3081\u3092\u523a\u3057\u3066\u7d42\u308f\u308a\u3067\u3059\u3002<\/p>\n<p>\u8a73\u3057\u304f\u306f\u30b0\u30b0\u3063\u3066\u307f\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n<p>\u305d\u308c\u3067\u306f\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u3053\u308c\u306b\u305d\u3063\u3066\u7d44\u3093\u3067\u307f\u307e\u3057\u3087\u3046\u3002<\/p>\n<p>\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u7d44\u3080\u306b\u3042\u305f\u3063\u3066\u90fd\u5408\u306e\u826f\u3044\u3088\u3046\u306b\u5f0f\u3092\u5909\u3048\u3066\u3042\u308a\u307e\u3059\u3002( 6 \u884c\u76ee )<\/p>\n<p>\u3053\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u306f arcTan(double x) \u306e n \u756a\u76ee (i + i + 1) \u306e\u9805\u304c 0 \u306b\u306a\u308b\u307e\u3067\u8a08\u7b97\u3092\u3057\u307e\u3059\u3002<\/p>\n<p>\u5341\u5206\u5c0f\u3055\u306a\u5024\u3092\u3068\u308b\u307e\u3067\u306b\u5909\u66f4\u3059\u308b\u5834\u5408\u306f\u3001if \u6587\u306e\u6761\u4ef6\u306f\u7d76\u5bfe\u5024\u3092\u3068\u308b\u3088\u3046\u306b\u5909\u66f4\u3059\u308c\u3070\u3044\u3044\u3067\u3057\u3087\u3046\u3002<\/p>\n<pre title=\"HighPrecisionPi.java\" mark=\"6\">package jp.yucchi.highprecisionpi;\r\n\r\npublic class HighPrecisionPi {\r\n\r\n    public static void main(String[] args) {\r\n        double pi = 16.0 * arcTan(1.0 \/ 5.0) - 4.0 * arcTan(1.0 \/ 239.0);\r\n        System.out.println(pi);\r\n    }\r\n\r\n    private static double arcTan(double x) {\r\n        double ret = 0.0;\r\n        double sig = x;\r\n        double sqx = x * x;\r\n        for (int i = 0; sig != 0.0; i++) {\r\n            ret += sig \/ (double) (i + i + 1);\r\n            sig = -sig * sqx;\r\n        }\r\n        return ret;\r\n    }\r\n}<\/pre>\n<p>\u3055\u3066\u3001\u3053\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u306e\u5b9f\u884c\u7d50\u679c\u3092\u78ba\u8a8d\u3057\u3066\u307f\u307e\u3057\u3087\u3046\u3002<\/p>\n<p>3.141592653589794<\/p>\n<p>\u6700\u5f8c\u306e\u6841\u304c 3 \u3067\u3042\u308b\u3068\u3053\u308d\u304c 4 \u306b\u306a\u3063\u3066\u307e\u3059\u3002<\/p>\n<p>\u30e2\u30f3\u30c6\u30ab\u30eb\u30ed\u6cd5\u3088\u308a\u901f\u304f\u3066\u7cbe\u5ea6\u306f\u9ad8\u3044\u3067\u3059\u306d\u3002<\/p>\n<p>\u3067\u3082\u3001\u3082\u3063\u3068\u6841\u6570\u3092\u3068\u308a\u305f\u304f\u306a\u3044\u3067\u3057\u3087\u3046\u304b\uff1f<\/p>\n<p>\u305d\u3053\u3067\u3001\u3053\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u6b21\u306e\u3088\u3046\u306b\u5909\u66f4\u3057\u3066\u307f\u307e\u3057\u305f\u3002<\/p>\n<p>\u767e\u4e07\u6841\u306e\u8a08\u7b97\u3092\u3055\u305b\u308b\u305f\u3081\u306b BigDecimal \u3092\u4f7f\u3063\u3066\u307f\u307e\u3057\u305f\u3002<\/p>\n<p>\u57fa\u672c\u7684\u306b\u5148\u307b\u3069\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u3068\u540c\u3058\u3067\u3059\u3002<\/p>\n<p>\u3061\u3087\u3063\u3068\u51e6\u7406\u6642\u9593\u304c\u6c17\u306b\u306a\u308b\u306e\u3067\u6642\u9593\u8a08\u6e2c\u3092\u3044\u308c\u3066\u307e\u3059\u3002<\/p>\n<p>\u3068\u8a00\u3063\u3066\u3082\u767e\u4e07\u6841\u3082\u8a08\u7b97\u3055\u305b\u308b\u3068\u51c4\u304f\u6642\u9593\u304c\u304b\u304b\u3063\u3066\u3057\u307e\u3046\u306e\u306f\u89e3\u308a\u304d\u3063\u3066\u3044\u308b\u3053\u3068\u306a\u306e\u3067\u4e00\u4e07\u6841\u3067\u8a66\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n<p>\u666e\u6bb5\u4f7f\u3046\u6a5f\u4f1a\u304c\u5c11\u306a\u3044 BigDecimal \u3092\u4f7f\u3063\u3066\u307e\u3059\u306e\u3067\u3061\u3087\u3063\u3068\u304a\u304b\u3057\u3044\u3068\u3053\u308d\u304c\u3042\u308b\u304b\u3082\u3057\u308c\u307e\u305b\u3093\u304c\u6c17\u306b\u3057\u306a\u3044\u3067\u306d\u3002(^_^;)<\/p>\n<p>\u3042\u3068\u3001\u6841\u6570\u3092\u591a\u304f\u3068\u308b\u306e\u3067 0 \u53ce\u675f\u3092\u4f7f\u3046\u3068\u975e\u5e38\u306b\u6642\u9593\u304c\u304b\u304b\u3063\u3066\u3057\u307e\u3046\u306e\u3067\u8aa4\u5dee\u304c\u3067\u306a\u3044\u3088\u3046\u306b\u9069\u5f53\u306b\u30eb\u30fc\u30d7\u3055\u305b\u3066\u307e\u3059\u3002<\/p>\n<p>\u305d\u308c\u3067\u306f\u3044\u3064\u3082\u306e\u3088\u3046\u306b\u672a\u719f\u3067\u6c5a\u3044\u30b3\u30fc\u30c9\u3067\u3059\u304c\u3054\u89a7\u304f\u3060\u3055\u3044\u3002<\/p>\n<pre title=\"HighPrecisionPi.java\">\r\npackage jp.yucchi.highprecisionpi;\r\n\r\nimport java.lang.management.ManagementFactory;\r\nimport java.math.BigDecimal;\r\nimport java.math.MathContext;\r\nimport java.math.RoundingMode;\r\nimport java.util.ArrayList;\r\nimport java.util.List;\r\nimport java.util.concurrent.ExecutorService;\r\nimport java.util.concurrent.Executors;\r\nimport java.util.concurrent.*;\r\nimport java.util.logging.Level;\r\nimport java.util.logging.Logger;\r\n\r\npublic class HighPrecisionPi implements Callable<BigDecimal> {\r\n\r\n    private static final int KETA = 10_000;\r\n    private static final int LIMIT_NUMBER = KETA + 2;\r\n    private static final int LIMIT_NUMBER2 = KETA ;\r\n    private static long startTime;\r\n    private static long time;\r\n    private final BigDecimal s_q;\r\n    private final BigDecimal _limit;\r\n    private BigDecimal ss;\r\n\r\n    public HighPrecisionPi(BigDecimal _limit, BigDecimal ss, BigDecimal s_q) {\r\n        this._limit = _limit;\r\n        this.ss = ss;\r\n        this.s_q = s_q;\r\n    }\r\n\r\n    public static void main(String[] args) {\r\n        System.out.println(\"<--- \u5186\u5468\u7387\u8a08\u7b97\u958b\u59cb --->\");\r\n        startTime = System.nanoTime();\r\n        \/\/\u7cbe\u5ea6KETA\u6841 \u56db\u6368\u4e94\u5165\u3067\u4e38\u3081\u308b\r\n        int setPrecision = KETA;\r\n        RoundingMode setRoundingMode = RoundingMode.HALF_UP;\r\n        MathContext mc2 = new MathContext(1, setRoundingMode);\r\n        MathContext mc = new MathContext(setPrecision, setRoundingMode);\r\n        BigDecimal f = BigDecimal.ZERO;  \/\/ 0\r\n        BigDecimal r = BigDecimal.ZERO;  \/\/ 0\r\n        BigDecimal one = BigDecimal.ONE;  \/\/ 1     \r\n        BigDecimal two = new BigDecimal(2, mc); \/\/2      \r\n        BigDecimal n239 = new BigDecimal(239, mc); \/\/ 239\r\n        BigDecimal sq239 = new BigDecimal(57121, mc); \/\/ 239^2\r\n\r\n        int procs = ManagementFactory.getOperatingSystemMXBean().getAvailableProcessors();\r\n        if (procs > 1) {\r\n            procs = 2;\r\n        }\r\n        ExecutorService executor = Executors.newFixedThreadPool(procs);\r\n\r\n        List<Future<BigDecimal>> futures = new ArrayList<>();\r\n        for (int i = 0; i < 2; i++) {\r\n            final BigDecimal _limit;\r\n            final BigDecimal ss;\r\n            final BigDecimal s_q;\r\n            if (i > 0) {\r\n                _limit = new BigDecimal(LIMIT_NUMBER, mc);\r\n                ss = new BigDecimal(0.2, mc2); \/\/ 1 \/ 5\r\n                s_q = new BigDecimal(0.04, mc2); \/\/ 1 \/ 25\r\n            } else {\r\n                _limit = new BigDecimal(LIMIT_NUMBER2, mc);\r\n                ss = one.divide(n239, mc); \/\/ 1 \/ 239        \r\n                s_q = one.divide(sq239, mc); \/\/ 1 \/ 57121     \r\n            }\r\n            futures.add(executor.submit(new HighPrecisionPi(_limit, ss, s_q)));\r\n        }\r\n\r\n        try {\r\n            f = futures.get(1).get().multiply(new BigDecimal(16, mc));\r\n        } catch (InterruptedException | ExecutionException ex) {\r\n            Logger.getLogger(HighPrecisionPi.class.getName()).log(Level.SEVERE, null, ex);\r\n        }\r\n\r\n        try {\r\n            r = futures.get(0).get().multiply(new BigDecimal(4, mc));\r\n        } catch (InterruptedException | ExecutionException ex) {\r\n            Logger.getLogger(HighPrecisionPi.class.getName()).log(Level.SEVERE, null, ex);\r\n        }\r\n\r\n        System.out.println(\"\\n\" + KETA + \"\u6841\u306e\u5186\u5468\u7387\u306f\u3001\\n\" + f.subtract(r, mc));\r\n        time = System.nanoTime() - startTime;\r\n        System.out.println(\"\\n\" + KETA + \"\u6841\u306e\u5186\u5468\u7387\u8a08\u7b97\u6642\u9593\u306f\u3001\"\r\n                + (int) (time * 1e-9) \/ 3_600 + \"\u6642\u9593\"\r\n                + (int) ((time * 1e-9) \/ 60) % 60 + \"\u5206\"\r\n                + (int) (time * 1e-9 % 60) + \"\u79d2\"\r\n                + Double.toString((time * 1e-9 % 60) % 1).substring(2) + \"\\n\");\r\n\r\n        System.out.println(\"<--- \u5186\u5468\u7387\u8a08\u7b97\u7d42\u4e86 --->\");\r\n\r\n        executor.shutdown();\r\n    }\r\n\r\n    @Override\r\n    public BigDecimal call() throws Exception {\r\n        int setPrecision = KETA;\r\n        RoundingMode setRoundingMode = RoundingMode.HALF_UP;\r\n        MathContext mc = new MathContext(setPrecision, setRoundingMode);\r\n        MathContext mc2 = new MathContext(1, setRoundingMode);\r\n        BigDecimal fr = BigDecimal.ZERO;  \/\/ 0\r\n        BigDecimal p2 = BigDecimal.ZERO;  \/\/ 0\r\n        BigDecimal one = BigDecimal.ONE;  \/\/ 1     \r\n        BigDecimal two = new BigDecimal(2, mc); \/\/2 \r\n\r\n        for (int i = 0; p2.compareTo(_limit) < 0; i++) {\r\n            BigDecimal bi = new BigDecimal(i, mc);\r\n            fr = fr.add(ss.divide((bi.multiply(two).add(one)), mc));\r\n            ss = ss.multiply(s_q, mc).negate();\r\n            p2 = p2.add(one);\r\n        }\r\n        return fr;\r\n    }\r\n}\r\n\r\n<\/pre>\n<p>\u5c11\u3057\u3067\u3082\u8a08\u7b97\u6642\u9593\u304c\u77ed\u304f\u306a\u308c\u3070\u3044\u3044\u306a\u3041\u3063\u3066\u601d\u3063\u3066\u60aa\u3042\u304c\u304d\u3057\u3066\u307e\u3059\u3002(\uffe3\u3002\uffe3;)<\/p>\n<p>\u57fa\u672c\u7684\u306a\u8003\u3048\u65b9\u306f double \u4ed5\u69d8\u306e\u3082\u306e\u3068\u4e00\u7dd2\u3067\u60aa\u3042\u304c\u304d\u306e\u4e26\u884c\u51e6\u7406\u3092\u53d6\u308a\u5165\u308c\u305f\u3060\u3051\u3067\u3059\u3002<\/p>\n<p>\u5b9f\u884c\u7d50\u679c\u306e\u629c\u7c8b\u3092\u8f09\u305b\u3066\u304a\u304d\u307e\u3059\u3002<\/p>\n<p>&lt;--- \u5186\u5468\u7387\u8a08\u7b97\u958b\u59cb ---&gt;<\/p>\n<p>10000\u6841\u306e\u5186\u5468\u7387\u306f\u3001<br \/>\n3.1415926535897932384626433832795028841971693993751058209749445923078164062<\/p>\n<p>\u7565<\/p>\n<p>4988727584610126483699989225695968815920560010165525637568<\/p>\n<p>10000\u6841\u306e\u5186\u5468\u7387\u8a08\u7b97\u6642\u9593\u306f\u30010\u6642\u95933\u520622\u79d24562651430000244<\/p>\n<p>&lt;--- \u5186\u5468\u7387\u8a08\u7b97\u7d42\u4e86 ---&gt;<\/p>\n<p>\u3061\u3083\u3093\u3068\u8a08\u7b97\u3067\u304d\u3066\u307e\u3059\u306d\u3002<\/p>\n<p>\u4e00\u756a\u6700\u5f8c\u306f\u4e38\u3081\u306b\u3088\u3063\u3066\u56db\u6368\u4e94\u5165\u3055\u308c\u3066\u307e\u3059\u3002<\/p>\n<p>\u3082\u3063\u3068\u52b9\u7387\u3088\u304f\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u7d44\u3080\u306b\u306f\u53ce\u675f\u5024\u3092\u8a2d\u5b9a\u3057\u305f\u307b\u3046\u304c\u3044\u3044\u306e\u304b\u306a\u3041\u30fb\u30fb\u30fb\uff1f<\/p>\n<p>\u3067\u3082\u3001\u901f\u304f\u3066\u3082\u8a08\u7b97\u304c\u7518\u304f\u306a\u308b\u306e\u306f\u3044\u3084\u3060\uff01<\/p>\n<p>\u3068\u308a\u3042\u3048\u305a\u6628\u5e74\u4f5c\u3063\u305f\u30e2\u30f3\u30c6\u30ab\u30eb\u30ed\u6cd5\u3067\u5186\u5468\u7387\u3092\u6c42\u3081\u308b\u30d7\u30ed\u30b0\u30e9\u30e0\u3088\u308a\u9059\u304b\u306b\u826f\u3044\u306e\u306f\u78ba\u304b\u3060\uff01<\/p>\n<p>\u3042\u3068\u6c17\u306e\u305b\u3044\u304b\u3082\u3057\u308c\u306a\u3044\u304c BigDecimal \u306e\u9664\u7b97\u3063\u3066\u9045\u304f\u611f\u3058\u308b\u3002<\/p>\n<p>\u30b4\u30fc\u30eb\u30c7\u30f3\u30a6\u30a3\u30fc\u30af\u306e\u6700\u5f8c\u306e\u4f11\u65e5\u306b\u3053\u3093\u306a\u3053\u3068\u3057\u3066\u3044\u308b\u3063\u3066\u306e\u306f\u5e73\u548c\u3067\u3044\u3044\u306d\u3002(^_^)<\/p>\n<p><span style=\"color: #ff0000;\">\u5e73\u621025\u5e745\u67088\u65e5(\u6c34)\u3000\u8ffd\u8a18\u3000\u8a08\u7b97\u306e\u30eb\u30fc\u30d7\u306e\u56de\u6570\u3092\u6c7a\u3081\u3066\u3044\u308b LIMIT_NUMBER \u306e\u5024\u3092\u5909\u66f4\u3057\u307e\u3057\u305f\u3002<\/span><\/p>\n<p><span style=\"color: #ff0000;\">10000 \u6841\u3067\u78ba\u8a8d\u3057\u305f\u3068\u3053\u308d\u554f\u984c\u306a\u3055\u305d\u3046\u3067\u3057\u305f\u3002<\/span><\/p>\n<p><span style=\"color: #ff0000;\">\u305f\u3060\u3057\u3001\u305d\u308c\u3088\u308a\u5927\u304d\u306a\u6841\u306f\u78ba\u8a8d\u3057\u3066\u3044\u307e\u305b\u3093\u306e\u3067\u3042\u3057\u304b\u3089\u305a\u3002(\uff1b\u00b4\u0414\uff40)<\/span><\/p>\n<div class=\"wlWriterEditableSmartContent\" id=\"scid:0767317B-992E-4b12-91E0-4F059A8CECA8:d5dac109-d90e-4662-bd43-d8a5c6ca514b\" style=\"margin: 0px; padding: 0px; float: none; display: inline;\">Hatena \u30bf\u30b0: <a href=\"http:\/\/b.hatena.ne.jp\/t\/Java\" rel=\"tag\">Java<\/a><\/div>\n<div class='wp_social_bookmarking_light'>\n            <div class=\"wsbl_hatena\"><a href='\/\/b.hatena.ne.jp\/add?mode=confirm&url=http%3A%2F%2Fyucchi.jp%2Fblog%2F%3Fp%3D949&title=%E5%86%86%E5%91%A8%E7%8E%87%E3%82%92%20Machin%26%238217%3Bs%20formula%20%E3%81%A7%E6%B1%82%E3%82%81%E3%82%8B' title='\u3053\u306e\u30a8\u30f3\u30c8\u30ea\u30fc\u3092\u306f\u3066\u306a\u30d6\u30c3\u30af\u30de\u30fc\u30af\u306b\u8ffd\u52a0' rel=nofollow class='wp_social_bookmarking_light_a' target=_blank><img src='http:\/\/yucchi.jp\/blog\/wp-content\/plugins\/wp-social-bookmarking-light\/public\/images\/hatena.gif' alt='\u3053\u306e\u30a8\u30f3\u30c8\u30ea\u30fc\u3092\u306f\u3066\u306a\u30d6\u30c3\u30af\u30de\u30fc\u30af\u306b\u8ffd\u52a0' title='\u3053\u306e\u30a8\u30f3\u30c8\u30ea\u30fc\u3092\u306f\u3066\u306a\u30d6\u30c3\u30af\u30de\u30fc\u30af\u306b\u8ffd\u52a0' width='16' height='12' class='wp_social_bookmarking_light_img' \/><\/a><\/div>\n            <div class=\"wsbl_facebook\"><a href='http:\/\/www.facebook.com\/share.php?u=http%3A%2F%2Fyucchi.jp%2Fblog%2F%3Fp%3D949&t=%E5%86%86%E5%91%A8%E7%8E%87%E3%82%92%20Machin%26%238217%3Bs%20formula%20%E3%81%A7%E6%B1%82%E3%82%81%E3%82%8B' title='Facebook \u306b\u30b7\u30a7\u30a2' rel=nofollow class='wp_social_bookmarking_light_a' target=_blank><img src='http:\/\/yucchi.jp\/blog\/wp-content\/plugins\/wp-social-bookmarking-light\/public\/images\/facebook.png' alt='Facebook \u306b\u30b7\u30a7\u30a2' title='Facebook \u306b\u30b7\u30a7\u30a2' width='16' height='16' class='wp_social_bookmarking_light_img' \/><\/a><\/div>\n            <div class=\"wsbl_google_plus_one\"><g:plusone size=\"medium\" annotation=\"none\" href=\"http:\/\/yucchi.jp\/blog\/?p=949\" ><\/g:plusone><\/div>\n            <div class=\"wsbl_twitter\"><a href=\"https:\/\/twitter.com\/share\" class=\"twitter-share-button\" data-url=\"http:\/\/yucchi.jp\/blog\/?p=949\" data-text=\"\u5186\u5468\u7387\u3092 Machin&#8217;s formula \u3067\u6c42\u3081\u308b\" data-lang=\"ja\">Tweet<\/a><\/div>\n    <\/div>\n<br class='wp_social_bookmarking_light_clear' \/>\n","protected":false},"excerpt":{"rendered":"<p>\u4e00\u5e74\u8fd1\u304f\u524d\u306b\u5186\u5468\u7387\u3092\u30e2\u30f3\u30c6\u30ab\u30eb\u30ed\u6cd5\u3092\u5229\u7528\u3057\u3066\u6c42\u3081\u308b\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u7d44\u3093\u3060\u3002 \u4eca\u56de\u306f \u30de\u30c1\u30f3\u306e\u516c\u5f0f ( Machin&#8217;s formula ) \u3092\u5229\u7528\u3057\u3066\u307f\u3088\u3046\u3068\u601d\u3046\u3002 \u305d\u3057\u3066\u6841\u6570\u3068\u7cbe\u5ea6\u3082\u4e0a\u3052\u3066\u307f\u305f\u3044\u3068\u601d\u3063\u3066\u3053\u306e\u65b9\u6cd5\u3092\u9078\u629e\u3057\u3066\u307f\u305f\u3002 \u307e\u305a\u3001\u30de\u30c1\u30f3\u306e\u516c\u5f0f\u3068\u306f\u6b21\u306e\u3088\u3046\u306b\u306a\u3063\u3066\u3044\u308b\u3002 \u3053\u306e\u516c\u5f0f\u306e\u8a3c\u660e\u306f\u4e09\u89d2\u95a2\u6570\u306e\u516c\u5f0f\u3092\u5229\u7528\u3057\u3066\u8a3c\u660e\u3067\u304d\u307e\u3059\u3002 \u500d\u89d2\u516c\u5f0f\u3092\u4e8c\u5ea6\u4f7f\u3044\u3001\u52a0\u6cd5\u5b9a\u7406\u3067\u3068\u3069\u3081\u3092\u523a\u3057\u3066\u7d42\u308f\u308a\u3067\u3059\u3002 \u8a73\u3057\u304f\u306f\u30b0\u30b0\u3063\u3066\u307f\u3066\u304f\u3060\u3055\u3044\u3002 \u305d\u308c\u3067\u306f\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u3053\u308c\u306b\u305d\u3063\u3066\u7d44\u3093\u3067\u307f\u307e\u3057\u3087\u3046\u3002 \u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u7d44\u3080\u306b\u3042\u305f\u3063\u3066\u90fd\u5408\u306e\u826f\u3044\u3088\u3046\u306b\u5f0f\u3092\u5909\u3048\u3066\u3042\u308a\u307e\u3059\u3002( 6 \u884c\u76ee ) \u3053\u306e\u30d7\u30ed\u30b0\u30e9\u30e0\u3067\u306f arcTan(do\u2026<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[17],"class_list":["post-949","post","type-post","status-publish","format-standard","hentry","category-java","tag-java"],"_links":{"self":[{"href":"http:\/\/yucchi.jp\/blog\/index.php?rest_route=\/wp\/v2\/posts\/949","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/yucchi.jp\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/yucchi.jp\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/yucchi.jp\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/yucchi.jp\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=949"}],"version-history":[{"count":10,"href":"http:\/\/yucchi.jp\/blog\/index.php?rest_route=\/wp\/v2\/posts\/949\/revisions"}],"predecessor-version":[{"id":963,"href":"http:\/\/yucchi.jp\/blog\/index.php?rest_route=\/wp\/v2\/posts\/949\/revisions\/963"}],"wp:attachment":[{"href":"http:\/\/yucchi.jp\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=949"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/yucchi.jp\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=949"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/yucchi.jp\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=949"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}