社区
数据结构与算法
帖子详情
求能将小数转化为最近似分数的算法。
CSharp_XinBing
2012-04-04 06:43:43
小弟想求教前辈下下,有什么算法能将小数转化为最分数哪?(分数要求是与小数的值最接近的值)
比如像25% =1/4这个很容易了,但62.9% = 7/11,或是47.6% = 5/11这个,应该是什么思路哪?
最好是通用性比较强的,能适应所有的小数。
请前辈指点,谢谢!
分不多了,有了分一定加上,谢谢。
...全文
789
6
打赏
收藏
求能将小数转化为最近似分数的算法。
小弟想求教前辈下下,有什么算法能将小数转化为最分数哪?(分数要求是与小数的值最接近的值) 比如像25% =1/4这个很容易了,但62.9% = 7/11,或是47.6% = 5/11这个,应该是什么思路哪? 最好是通用性比较强的,能适应所有的小数。 请前辈指点,谢谢! 分不多了,有了分一定加上,谢谢。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
无限不循环小数是无理数,是不可以转化为有理数的分数形式的。明白了吧
c#
小数
化最简
分数
算法
c#
小数
化最简
分数
算法
: //
小数
化
分数
主函数 public static string XXtoBL(decimal XX) //求最大公约数的函数 public static int MaxY(int firstNumber, int secondNumber)
C
小数
转换
分数
的函数
小数
转换为
分数
的C++代码,能将十进制的
小数
转化
为分子与分母都是整数的
分数
,换句话说,这个
算法
能够自动判定循环节。任何十进制数值都能被
转化
为一个指定精度的
分数
。 这个
算法
的根本原理是:一个
分数
对应一条直线的斜率。用数学语言描述就是:一条直线的斜率是无穷大(垂直于X轴)或者是(Y2-Y1) / (X2-X1),我们要做的就是找到2个整数,在指定的精度范围内接近这个斜率。对于正数来说,我们设置分子为0,分母为1,然后比较这个
分数
同给定的十进制数。如果我们的
分数
太小了(比如,我们选择的点在直线的下面),我们就加大分子的值直到这个
分数
太大(比如,这个点在直线的上方),之后我们在增加分母的大小直到这个点在直线下方。如果我们的最终目标是无理数(无限不循环
小数
),这个
算法
将一直继续,增加分子和分母,直到最终结果在指定的精度上。
Excel办公软件灵活妙用技巧笔记集锦
在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节:快速为数据增加或减少
小数
位数
小数
转
分数
算法
.cs
网上收集的各种
算法
综合一下,整理出来的这个,给大家参考 分为两个方法 /// ///
小数
转
分数
/// /// /// public static string GetFraction(double inputnum) /// /// 求最大公约数 /// /// /// /// public static int MaxCommonDivisor(int num1, int num2)
kmp
算法
,作业调度问题,将
分数
转化
为循环
小数
,分治法求最大小值
用于加密
算法
中找出子串在主串中的位置的效率比较高的 kmp
算法
,很有用的阿 作业调度问题,将
分数
转化
为循环
小数
,分治法求最大小值 16进制
转化
为10进制,都是比较好的源程序 ,运行正常
数据结构与算法
33,008
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章