查找最佳分数Π

news2025/1/15 13:13:27

查找分子或分母不大于一亿的分数Π


    private static final int MAX_N = 100000000;

    private static void findPIByDivider() {
        Log.d("findPI", "findPIByDivider start MAX_N=" + MAX_N);
        long curtime = System.currentTimeMillis();
        double lastRet = 1;
        int selectI = 0, selectJ = 0;
        double finalRet = 0;
        for (int i = 3; i <= MAX_N; i++) {
            int m = (int) (i / Math.PI);
            for (int j = m; j <= m + 1; j++) {
                double di = i;
                double ret = Math.abs(di / j - Math.PI);
                if (ret < lastRet) {
                    lastRet = ret;
                    selectI = i;
                    selectJ = j;
                    finalRet = di / j;
                }
            }

            if( isPowerOfTen(i) || i == MAX_N) {
                Log.d("findPI", "i=" + String.format("%-12s", i) + " fraction = " + String.format("%12s", selectI) +
                        " / " + String.format("%-12s", selectJ) + " finalRet=" + finalRet);
            }

        }
        Log.d("findPI", "findPIByDivider end. PI=" + Math.PI + " use time=" + (System.currentTimeMillis() - curtime));
    }

    private static void findPIByMulti() {
        Log.d("findPI", "findPIByMulti start MAX_N=" + MAX_N);
        long curtime = System.currentTimeMillis();
        double lastRet = 1;
        int selectI = 0, selectJ = 0;
        double finalRet = 0;
        for (int i = 1; i <= MAX_N; i++) {
            int m = (int) (i * Math.PI);
            for (int j = m; j <= m + 1; j++) {
                double di = i;
                double ret = Math.abs(j / di - Math.PI);
                if (ret < lastRet) {
                    lastRet = ret;
                    selectI = i;
                    selectJ = j;
                    finalRet = j / di;
                }
            }

            if( isPowerOfTen(i) || i == MAX_N) {
                Log.d("findPI", "i=" + String.format("%-12s", i) + " fraction = " + String.format("%12s", selectJ) +
                        " / " + String.format("%-12s", selectI) + " finalRet=" + finalRet);
            }
        }
        Log.d("findPI", "findPIByMulti end. PI=" + Math.PI + " use time=" + (System.currentTimeMillis() - curtime));
    }

    private static boolean isPowerOfTen(int num) {
        int tenPower = 1;
        for (int i = 1; i < 12; i++) {
            tenPower *= 10;
            if (num == tenPower) {
                return true;
            }
        }
        return false;
    }

结果如下:

反复运行后,会发现在做大量运算时,乘法要比除法的效率高一些

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1810699.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机网络9——无线网络和移动网络3 蜂窝移动通信网

文章目录 一、蜂窝无线通信技术的发展简介1、蜂窝移动通信系统问世2、2G 蜂窝移动通信系统3、数据通信被引入移动通信系统4、3G 蜂窝移动通信系统4、4G 蜂窝移动通信系统 一、蜂窝无线通信技术的发展简介 1、蜂窝移动通信系统问世 移动通信的种类很多&#xff0c;如蜂窝移动通…

MySQL密码自动过期配置

目录 一、密码自动过期 1、临时 2、永久 3、查看 4、账号设置 一、密码自动过期 登录数据库查看是否生效 mysql -u root -p #查看数据库账号状态 select user,host,password_expired,password_lifetime,password_last_changed,account_locked from mysql.user; 1、passwo…

2024检索增强生成RAG最新综述

论文地址&#xff1a;https://arxiv.org/abs/2402.19473 项目存储库&#xff1a;https://github.com/hymie122/RAG-Survey 摘要—人工智能生成内容&#xff08;AIGC&#xff09;的发展得益于模型算法的进步、基础模型规模的增加以及大量高质量数据集的可用性。虽然AIGC取得了…

亚马逊、Lazada、shopee等跨境电商平台测评自养号怎么做?

近年来越来越多的国内卖家进入跨境电商市场&#xff0c;竞争日益激烈&#xff0c;测评的需求越来越大&#xff0c;那么什么是测评&#xff1f; 测评就是买家号通过平台进入自己的店铺购买产品增加销量&#xff0c;买家号收到产品后也可以进行评价&#xff0c;其中包括&#xf…

跨国大文件传输需要哪些方面?怎么实现数据快速传输?

跨国大文件传输涉及到许多方面&#xff0c;包括网络速度、安全性、可靠性和法律合规性等。 以下是跨国大文件传输时需要考虑的一些重要方面&#xff1a; 高速稳定的网络连接&#xff1a;确保有足够的带宽和稳定的网络连接以支持大文件的快速传输。这可能需要考虑到跨国网络的延…

【C++题解】1457 - 子数整除

问题&#xff1a;1457 - 子数整除 类型&#xff1a;循环应用 题目描述&#xff1a; 于一个五位数 abcde &#xff0c;可将其拆分为三个子数&#xff1a; sub1abc sub2bcd sub3cde 例如&#xff0c;五位数20207 可以拆分成sub1202 sub2020 (也就是 20) sub3207 现在给定一个正…

xLua(一) 环境安装笔记

为了方便查阅记录一下xLua的安装地址及方法 1.登录地址下载: https://github.com/Tencent/xLua 2.解压文件 将文件中的这些内容拷贝到项目中的Asset文件夹中 注意 : 工程项目路径不得含有中文 3.将Tools复制到Asset同级目录下 4.导入后会发现有Bug,需要导入工程 5.还有另…

我在得物的这两年

写在前面 这篇文章非常简单&#xff0c;和大家简单聊聊我在得物的这两年&#xff0c;也是从学生到社会人的这两年。 我是2022年的6月加入得物实习&#xff0c;负责某个业务中台的后端研发&#xff0c;那一年我21岁&#xff0c;还在读大三&#xff0c;还在迷茫未来是读研还是工…

爱奇艺视频怎么转换成mp4格式,爱奇艺qsv转换mp4最简单方法

在数字化时代&#xff0c;视频格式的转换成为了我们日常生活中常见的需求。特别是对于那些经常从各大视频平台下载视频的朋友来说&#xff0c;将特定格式的视频转换为更通用的格式&#xff0c;如MP4&#xff0c;变得尤为重要。其中&#xff0c;qsv格式的视频转换就是一项常见的…

大模型+RAG,全面介绍!

1 、介绍 大型语言模型&#xff08;LLMs&#xff09;在处理特定领域或高度专业化的查询时存在局限性&#xff0c;如生成不正确信息或“幻觉”。缓解这些限制的一种有前途的方法是检索增强生成&#xff08;RAG&#xff09;&#xff0c;RAG就像是一个外挂&#xff0c;将外部数据…

AI驱动未来丨美格智能亮相COMPUTEX 2024台北电脑展

6月4日-7日&#xff0c;COMPUTEX 2024台北电脑展览会在台北南港会展馆隆重举行&#xff0c;此次展会汇聚了全球众多知名硬件厂商&#xff0c;为广大消费者带来了一场视觉与技术的盛宴。作为全球领先的无线通信模组及解决方案提供商&#xff0c;美格智能携最新的5G/4GAIoT模组与…

22.搭积木

上海市计算机学会竞赛平台 | YACSYACS 是由上海市计算机学会于2019年发起的活动,旨在激发青少年对学习人工智能与算法设计的热情与兴趣,提升青少年科学素养,引导青少年投身创新发现和科研实践活动。https://www.iai.sh.cn/problem/717 题目描述 小爱用积木搭起一座金字塔。为…

RS232和RS485简介

文章目录 单工、半双工和全双工的定义RS-232RS-485区别 单工、半双工和全双工的定义 1、如果在通信过程的任意时刻&#xff0c;信息只能由一方A传到另一方B&#xff0c;则称为单工。 2、如果在任意时刻&#xff0c;信息既可由A传到B&#xff0c;又能由B传A&#xff0c;但只能…

干货 | 2024元宇宙技术融合与新质生产力的创新实践(免费下载)

【1】关注本公众号&#xff0c;转发当前文章到微信朋友圈 【2】私信发送 【3】获取本方案PDF下载链接&#xff0c;直接下载即可。 如需下载本方案PPT/WORD原格式&#xff0c;请加入微信扫描以下方案驿站知识星球&#xff0c;获取上万份PPT/WORD解决方案&#xff01;&#xff…

java中toCharArray用法详细分析(全)

将字符串中的字符转换为字符数组 public char[] toCharArray()括号内没有参数 返回值是一个字符数组接收 1.函数代码&#xff1a; package com.ithehema;public class Test {public static void main(String[] args) {String b"ss123456";char []cb.toCharArray()…

矩阵管理系统:智能创作与发布

在数字化时代&#xff0c;内容的创作和发布已成为企业与个人品牌建设的核心。矩阵管理系统作为一种高效的工具&#xff0c;通过智能技术提升创作效率和发布精准度&#xff0c;正在成为行业的新宠。 智能创作&#xff1a;释放创意潜能 智能创作工具利用人工智能技术&#xff0…

APP需要做等保吗?

在数字化时代&#xff0c;APP已成为我们生活中不可或缺的一部分&#xff0c;它们如同无形的桥梁&#xff0c;连接着现实世界与虚拟世界&#xff0c;为我们提供了前所未有的便利。然而&#xff0c;随着APP的普及&#xff0c;其背后潜藏的安全风险也日益凸显。近年来&#xff0c;…

通过引用得到变量的值

编写程序&#xff1a; 运行结果&#xff1a; 程序分析&#xff1a; a的值开始为10,b是a的引用&#xff0c;它的值当然也应该是10&#xff0c;当a的值变为100(a*a的值&#xff09;时&#xff0c;b的值也随之变为100。在输出a和b的值后&#xff0c;b的值变为20&#xff0c;显然a的…

配置单臂路由

最后R 1的配置为单臂路由的重要配置内容&#xff0c;要开启ARP广播功能 接口下dotlq termination vid [vlan] arp broadcast enable

【docker】 pull access denied for alpine-java, repository does not exist

问题&#xff1a; com.spotify.docker.client.exceptions.DockerException: pull access denied for alpine-java, repository does not exist or may require docker login: denied: requested access to the resource is denied org.apache.maven.plugin.MojoExecutionExce…