查找最佳分数Π

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

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.mzph.cn/diannao/26216.shtml

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

相关文章

计算机网络 —— 数据链路层(VLAN)

计算机网络 —— 数据链路层&#xff08;VLAN&#xff09; 什么是VLAN为什么要有VLANVLAN如何实现IEEE 802.1Q 我们今天来看VLAN&#xff1a; 什么是VLAN VLAN&#xff08;Virtual Local Area Network&#xff0c;虚拟局域网&#xff09;是一种网络技术&#xff0c;它将一个物…

一颗万能的PD协议芯片,能芯Type-C PD协议芯片“ECP5705”, 它是如何实现PD直流风扇应用呢?

文章目录 文章目录 前言 一、PD风扇方案介绍 二、芯片介绍 三、PD风扇-供电方式 四、能芯科技 PD 协议芯片ECP5705-应用场景 总结 前言 随着USB Type-C接口的普及和PD取电芯片的出现&#xff0c;使得小型家电和电动工具可以通过统一的USB Type-C接口进行充电&#xff0c;极大地…

2024年IntelliJ系列最新专业版安装码教程!(持续更新)

本教程适用于 J B 全系列产品&#xff0c;包括 Pycharm、IDEA、WebStorm、Phpstorm、Datagrip、RubyMine、CLion、AppCode 等。 2018-2024 均适用&#xff01; &#xff08;直接复制&#xff0c;拿走不谢&#xff09; 9H1390TRAK-eyJsaWNlbnNlSWQiOiI5SDEzOTBUUkFLIiwibGljZW…

Threejs-05、设置响应式画布与全屏控制。

1、自适应屏幕大小 你会发现,我们前面写好的代码,在页面尺寸发生改变的时候,并不能自适应的改变尺寸,而出现空白或者滚动条突出的情况。所以监听屏幕大小的改变,来重新设置相机的宽高比例和渲染器的尺寸大小,代码如下: // 监听画面变化,更新渲染画面 window.addEven…

MFC绘图

文章目录 消息组成消息的作用获取消息翻译消息常见消息WM_DESTROYWM_SYSCOMMAND 消息循环的阻塞发送消息字符串资源加速键资源GDI绘图对象-画笔位图绘制文本绘制字体模式对话框动态库特点线程创建线程 互斥事件信号量 消息组成 窗口句柄消息ID消息的两个参数消息产生的时间消息…

公路建设中边坡监测规范解析

边坡是山区公路或高速公路建设中的重要工程&#xff0c;但由于地形、地质等原因&#xff0c;边坡往往存在较高的塌方、滑坡、泥石流等风险。因此&#xff0c;边坡监测成为了十分必要的工作。本文将介绍边坡监测规范&#xff0c;希望能对相关工作者提供一些帮助。 点击输入图片描…

618这些卷王显示器,彻底杀疯了

该说不说&#xff0c;今年取消预售模式的第一个 618 终于让我看到了一些年中购物节该有的样子。 小忆估摸着不少同学的钱包君都有在这段时间被狠狠搜刮一番吧。 趁着活动热度还在&#xff0c;咱们今天再给大家添一把火&#xff0c;带来一期有关显示器的专题。 众所周知&#…

littlefs性能分析提升

littlefs性能分析 分析的目的很简单&#xff1a;希望支持掉电安全&#xff0c;或者说具有奔溃一致性特性的文件系统&#xff0c;他的读写速度能得到提升。如果了解了瓶颈所在&#xff0c;也可触类旁通。 本次分析&#xff0c;使用了大量的对比测试&#xff1a; littlefs读&a…

在Visual Studio Code中使用pytest进行AWS Lambda函数测试的最佳实践

背景/引言 在现代软件开发中&#xff0c;自动化测试已经成为保证代码质量的重要一环。对于AWS Lambda函数开发者来说&#xff0c;使用pytest进行单元测试和集成测试是一个高效且可靠的方法。本文将介绍在Visual Studio Code中使用pytest测试AWS Lambda函数的最佳实践&#xff…

RESTful API最佳实践:Python构建指南

目录 一、引言 二、RESTful API设计原则 三、Python构建RESTful API的技术栈 四、Flask构建RESTful API实践 安装Flask 定义路由和资源 处理HTTP方法 错误处理 数据验证和序列化 使用Flask扩展 五、最佳实践案例 七、结论 一、引言 在当今的软件开发领域&#…

SpringBoot 项目创建和 IDEA 常见问题

1、 Cannot save Files 问题(无法自动保存项目文件) Cannot save ....../HelloWord.java. Unable to create a backup file (HelloWord.java~). The file left unchanged. 原因&#xff1a;DIEA无法在保存前备份文件 解决办法&#xff1a;找到 Files --> Settings... -->…

谁是最会写作文的AI“考生”?“阅卷老师”ChatGPT直呼惊艳!

文章推荐 粽叶飘香&#xff0c;端午安康&#xff01;AI视频送祝福啦~ AI日报&#xff5c;文生语音大模型国内外均有突破&#xff0c;Pika完成6亿新融资&#xff0c;视频大模型也不远了&#xff01; ⭐️搜索“可信AI进展“关注公众号&#xff0c;获取当日最新AI资讯 一年一…

Claude3 注册及升级教程(包含封号解决方法)

前言 最近大家呼声很高的 Claude3 &#xff0c;它的 注册以及升级 教程来了&#xff01;&#xff01;&#xff01; &#xff08;还有封号情况的解决方式放在了后面&#xff09; 废话不多说&#xff0c;直接进入教程。 Claude 3 注册 前期准备工作 一个国外的邮箱账号&#…

HarmonyOS Next 系列之HTTP请求封装和Token持久化存储(四)

系列文章目录 HarmonyOS Next 系列之省市区弹窗选择器实现&#xff08;一&#xff09; HarmonyOS Next 系列之验证码输入组件实现&#xff08;二&#xff09; HarmonyOS Next 系列之底部标签栏TabBar实现&#xff08;三&#xff09; HarmonyOS Next 系列之HTTP请求封装和Token…

windows上修改Podman的镜像配置源加速

目录 前言解决办法1. 打开window的Powershell 2. 修改registries.conf3. 重启podman即可 扩展内容1. 国内镜像源地址2. 阿里加速地址 前言 今天在电脑上准备通过podman安装mysql&#xff0c;结果执行安装命令后&#xff0c;网络不通没法下载镜像。 解决办法 将默认镜像源修改…

释放创意潜力:AI写作助手如何助力内容创作?

内容为王&#xff0c;在内容创作的世界中尤为重要。然而&#xff0c;面对写作时常常感到无从下手&#xff1a;有时缺乏灵感&#xff0c;有时难以表达清楚自己的想法。AI写作助手的出现&#xff0c;为这些问题提供了创新的解决方案&#xff0c;极大地改变了内容创作的过程。 今…

C++: shared_ptr是线程安全的吗

导读 C面试中有时会有这样一个问题&#xff0c;shared_ptr是线程安全的吗&#xff1f;对此问题&#xff0c;我们需要从三个并发场景进行考虑&#xff0c;拷贝shared_ptr的安全性、对shared_ptr赋值的安全性和读写shared_ptr指向内存区域的安全性。 对于以上问题&#xff0c;首…

奥特曼28亿「投资帝国」曝光!不要OpenAI股份,当CEO最不赚钱

Sam Altman十几年来建立的庞大投资帝国&#xff0c;让我们终于理解了他为什么可以不要OpenAI的股权。 内容提要 作为一家曾经的小型非盈利组织&#xff0c;OpenAI以创纪录的速度迅速成长为估值860亿美元的独角兽。 虽然这大多归功于Sam Altman和微软达成的商业合作&#xff…

超强 BAAS 神器:支持自动生成API、对象存储、静态托管,云函数!

想象一下&#xff0c;你是一名开发者&#xff0c;你有一种强大的神器&#xff0c;可以让你摆脱繁琐的服务搭建和接口开发&#xff0c;免费使用众多第三方认证服务、对象存储、云函数和静态部署。这就是MemFire Cloud&#xff01; MemFire Cloud是懒人开发者的福音&#xff0c;一…

开源VisualFbeditor中文版,vb7 IDE,VB6升级64位跨平台开发安卓APP,Linux程序

吴涛老矣&#xff0c;社区苦无64位易语言&#xff0c;用注入DLL增强菜单&#xff0c;做成VS一样的界面 终归是治标不治本&#xff0c;一来会报毒&#xff0c;二来闭源20年没更新了 开源的VB7&#xff0c;欢迎易语言的铁粉进群&#xff1a;1032313876 【Freebasic编程语言】编绎…