求能将小数转化为最近似分数的算法。

CSharp_XinBing 2012-04-04 06:43:43
小弟想求教前辈下下,有什么算法能将小数转化为最分数哪?(分数要求是与小数的值最接近的值)
比如像25% =1/4这个很容易了,但62.9% = 7/11,或是47.6% = 5/11这个,应该是什么思路哪?
最好是通用性比较强的,能适应所有的小数。
请前辈指点,谢谢!
分不多了,有了分一定加上,谢谢。
...全文
789 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
kerbcurb 2012-04-05
  • 打赏
  • 举报
回复
你看一下这个里面:http://topic.csdn.net/u/20110608/19/2b65f7c2-aa23-424e-a517-e60fc31d4787.html
实际上是一回事
jenicooper 2012-04-05
  • 打赏
  • 举报
回复
编程之美一书中对此有比较详细的解答。
coolws123 2012-04-05
  • 打赏
  • 举报
回复
//小数转换成分数
//对于无限循环小数 X=0.a1a2…an(b1b2…bm)来说,其复杂部分在于小数点
//后同时有非循环部分和循环部分,我们可以做如下的转换:
//X = 0.a1a2…an(b1b2…bm)
// 10^n* X= a1a2…an.(b1b2…bm)
// 10^n* X= a1a2…an+0.(b1b2…bm)
//X =(a1a2…an+0.(b1b2…bm))/10^n
//对于整数部分 a1a2…an,不需要做额外处理,只需要把小数部分转化为分数
//形式再加上这个整数即可。对于后面的无限循环部分,可以采用如下方式进行处理:
//令 Y=0. b1b2…bm,那么
//10^m *Y=b1b2…bm.(b1b2…bm)
// 10^m *Y=b1b2…bm+0.(b1b2…bm)
// 10^m *Y-Y=b1b2…bm
// Y= b1b2…bm /(10^m-1)
//将 Y 代入前面的X 的等式可得:
//X =(a1a2…an+Y)/10^n
//=(a1a2…an+ b1b2…bm/(10^m-1))/10^n
//=((a1a2…an)*(10^m-1)+ (b1b2…bm))/((10^m-1)*10^n)
cnmhx 2012-04-04
  • 打赏
  • 举报
回复
当然是连分式啊!
FancyMouse 2012-04-04
  • 打赏
  • 举报
回复
连分数是你要的东西。
公共马甲0315 2012-04-04
  • 打赏
  • 举报
回复 1
有限数位的小数可以直接用百分数转化即可。比如62.9% = 629/1000。
如果是循环小数可以用级数求和的方式lim(n->∞)计算获得精确的分数形式。
比如0.11111111.....
可以写作an=10^-n,于是求和得到Sn=(1+0.1+0.01+...)-1,
Sn=a0*(1-10^-n)/(1-10^-1)-1
因为10^-n当n->∞时该项->0,可以忽略掉。
Sn = 1/(1-0.1)-1=10/(10-1)-1=1/9
所以0.11111111...=1/9

无限不循环小数是无理数,是不可以转化为有理数的分数形式的。明白了吧
在Excel使用过程中,运用一些技巧会使得我们的工作效率提高很多。而这些技巧往往又被忽略或忘记怎么去使用。本套课程基于此整理了一些Excel方面的技巧,这些呢为学习笔记集锦,前后章内容不存在连贯性,仅整理一些常用的技巧与大家分享。【说明:Excel为2013版本,无下载资料,请参看课程视频学习。】l  本课程知识点l  第1节:概述l  第2节:Excel大批量数据自动填写灵活妙用经验分享l  第3节:巧为Excel2013单元格的文本内容增加拼音l  第4节:Excel在单元格内实现自动换行l  第5节:Excel快速使用函数计算不同区域数据l  第6节:Excel单元格超长内容不能显示全巧妙设置l  第7节:巧妙运用之Excel单元格中自动快速输入带有小数点的数值l  第8节:Excel巧妙使用回车键快速粘贴l  第9节:职场必会Excel函数经典应用,使用And函数多条件判断l  第10节:Excel函数经典应用之IF函数条件判断范例l  第11节:Excel技巧之巧妙使用不同颜色区分不同类型数据l  第12节:巧妙快速调整Excle所有单元格或局部单元格l  第13节:巧妙快速切换Excel单元格回车后的纵向输入和横向输入l  第14节:巧妙理解记忆Excel公式中的相对引用和绝对引用l  第15节:Excel单元格文风快速两端对齐l  第16节:Excel2013文档内容快速居中打印l  第17节:excel直接使用模板制作精美格式样式l  第18节: excel使用中可以直接使用翻译功能中英文互译l  第19节:不需要截图工具直接使用excel复制图片l  第20节:excel粘贴也可以多种方式选择了l  第21节:巧为excel单元格画双划线l  第22节:为excel的文字或数字添加单划线或双划线l  第23节:excel连续微调单元格内容字号的大小l  第24节: 快速的将长文本内容变为自适应多行文本l  第25节:excel多单元格合并居中l  第26节:单元格内容连续微调缩进量l  第27节:将文本内容倾斜到任意角度l  第28节:单元格内容多种形式的对齐方式l  第29节:快速将数据转换为会计专用数据l  第30节:快速为数据增加或减少小数位数

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧