精华内容
下载资源
问答
  • 循环小数的比大小
    2021-05-22 18:45:29

    你们这个论坛弄的不是很好, 发贴点出一个小窗口后(在小窗口里发不了贴),  必须要点大窗口才能发的上来.   而且里面的很多设置繁琐.  有些都是无效的失灵的.  实际上我就根本没点收费,我都不知道收费是怎么出来的

    下面是一个网友发表的回复:

    首先a/b要约分成互质,为m/n,那么m/n与1/n循环节一样。

    把n中的2和5的因式全部去掉,这样不影响循环节长度,剩下的因式记为n1。

    根据循环小数化为分数的方法,分母必然是99…9(k个9)=10^k-1,并且n1必然整除10^k-1,这样问题就转化为求满足10^k≡1 (mod n1)的最小正整数k。

    首先要说欧拉函数φ(n):欧拉函数是一个定义在正整数上的函数,φ(n)的值等于以下这些整数0、1、2、…、n-1与n互素的数的个数。

    由定义知,φ(1)=1,φ(2)=1,φ(3)=2,φ(4)=2,……,当p是素数时,φ(p)=p-1。

    欧拉函数的计算方法:设n的标准分解式子是p1^k1·p2^k2·…·pm^km,其中p1、p2、…、pm是互不相等的素数,k1、k2、…、km都是正整数,则φ(n)=n(1-1/p1)(1-1/p2)…(1-1/pm)。

    例如φ(10)=10×(1-1/2)×(1-1/5)=4。

    欧拉定理:设a、m为整数,m>1,(a,m)=1,则a^φ(m)≡1 (mod m)。

    整数的次数:a、m为整数,m>1,(a,m)=1,k是使a^k≡1 (mod m)成立的最小正整数,则k叫做a对模m的次数。

    次数定理:设a对模m的次数为k,n是满足a^n≡1 (mod m)的正整数,则k|n。

    欧拉函数的计算方法、欧拉定理的证明、次数定理的证明可以找初等数论的书,这里就不发上来了。

    由欧拉定理可以得到求1/n循环节长度的方法。

    举个简单的例子。

    例如n=11,则φ(11)=10,根据欧拉定理10^10≡1 (mod 11),所以循环节长度一定是10的正约数。而10的正约数有1、2、5、10,从小到大逐一检验,得到10^2≡1 (mod 11),所以1/11的循环节长度就是2。

    假设a、n是大于1的正整数,p是素数,则a对模p的次数没有什么好办法去求,只能用上面的方法。

    其它情形有下面两个定理:

    假设a、n是大于1的正整数,n的标准分解式是p1^k1·p2^k2·…·pt^kt,其中p1、p2、…、pt是互不相等的素数,k1、k2、…、kt都是正整数,a对模pi^ki的次数为mi,则a对模n的次数为m1、m2、…、mt的最小公倍数。

    如果a、n是大于1的正整数,p是素数,k是正整数,a对模p^k的次数是m,则a对模p^(k+1)的次数是m或pm。

    这两个定理也可以从初等数论里找到证明,我也不发上来了。

    再举一个例子

    539=7^2×11

    10对模7的次数为6,那么10对模7^2的次数或者是6或者是42,经计算验证得10对模7^2的次数是42。

    10对模11的次数为2。

    所以10对模539的次数为2和42的最小公倍数,即42,所以1/539的循环节长度为42。

    《数论导引》里的差不多就是这些内容了,到现在为止求循环节长度的解法已经全部发上来了。

    下面是另一个网友发表的回复:

    我将做大胆的猜想(需证明):

    1,两个整数相除,结果一定是循环小数。 (只是有些循环节更大些)

    2,循环节大小跟被除数无关。

    3,循环节大小跟除数成决定性关系。

    4,如果被除数为1,那循环小数为“纯循环数”;如果如果被除数>1,那循环小数可能为“非纯循环数”。

    5,除数的最大素数越大,往往循环节越大。

    关于@3的关系:(我很多概念忘记了,叫不上名,用实际数字说明)

    Ex: 153 = 17 * 3 * 3;

    我们现说“153”由两个素数组成: 17,3。

    那么 循环节大小 受17主要影响,受3次要影响。

    被除数:1;  除数:如下:

    ------------------------------------------------------

    2,  除尽

    3,  0.33333333333333333333333333333333

    5,  除尽

    7,  0.14285714285714285714285714285714

    11, 0.090909090909090909090909090909091

    13, 0.076923076923076923076923076923077

    17, 0.058823529411764705882352941176471

    19, 0.052631578947368421052631578947368

    23, 0.043478260869565217391304347826087

    29, 0.034482758620689655172413793103448

    31, 0.032258064516129032258064516129032

    ...

    更多相关内容
  • 循环小数比较大小PPT学习教案.pptx
  • 福建省南平市浦城县七年级数学下册6.1平方根6.1.2无限不循环小数比较大小导学案无答案新版新人教版
  • 判断分数是否为无限循环小数

    万次阅读 2018-06-12 22:42:12
    之前做编程题,有一个部分需要判断一个分数是否为无限循环小数,挺有意思,特此整理记录如下: 问题描述(大概意思是) 已知分子a和分母b ,判断 分数a/b是否为无限循环小数 1.已知结论 将分数化为最简...

    0.前言

    之前做编程题,有一个部分需要判断一个分数是否为无限循环小数,挺有意思,特此整理记录如下:

    问题描述(大概意思是)
    已知分子a和分母b ,判断 分数a/b是否为无限循环小数

    1.已知结论

    将分数化为最简分数后,分母的全部因数(除去1和其自身)没有为2或5以外的数,则该分数就不是无限循环小数;否则为无限循环小数。

    首先我们看 1/n的实际含义:将 1 分成n份,每一份的大小

    那么10/n的实际含义:将 10 分成n份,每一份的大小

    对于将 10 分成n份这个话题,如果假设每份必须为整数,那么n的取值(去掉1或者10),只能是2或5

    最简分数是否为无限循环小数,与分子没有关系。

    2.问题解决

    2.1求分子分母的最大公约数

    此处可用辗转相除法求最大公约数

    2.2 判断最简分数的分母的因子

    此处可直接将分母分别整除以多次2和5即可

    3.代码实现

    import java.util.Scanner;
    /**
     * @Title:InfiniteLoop.java
     * @author Stone6762
     * @CreationTime 2018年6月12日 下午10:18:39
     * @Description: 判断一个分数是否为无限循环小数
     */
    public class InfiniteLoop {
    
        /**
         * @Title greatestCommonDivisor
         * @Describe求最大公约数
         * @param a
         * @param b
         * @return
         */
        public static long greatestCommonDivisor(long a, long b) {
            long c = 0;
            while (true) {// 循环的辗转相除法
                c = a % b;
                a = b;
                b = c;
                if (b == 0) {
                    return a;
                }
            }
        }
    
        /**
         * @Title isLoop
         * @Describe a/b是否为无限循环小数
         * @param a分子
         * @param b分母
         * @return
         */
        public static boolean isLoop(long a, long b) {
            // 1.化简,分子分母同时除以最大公约数
            long commonDivisor = greatestCommonDivisor(a, b);
            b = b / commonDivisor;
            // 2.判断分母是否为2的次幂,5的次幂,或者2 5结合
            // 首先让其除以2的次幂
            while (b % 2 == 0) {
                b /= 2;
            }
            // 然后让其除以5的次幂
            while (b % 5 == 0) {
                b /= 5;
            }
            // 最后判断是否为1,如果为1 说明没有 2或者5或者2和5结合构成 以外的因子
            if (b == 1) {
                return false;
            } else {
                return true;
            }
        }
    
        public static void main(String[] args) {
            Scanner scan = new Scanner(System.in);
            while (scan.hasNext()) {
                int a = scan.nextInt();
                int b = scan.nextInt();
                System.out.println( a+"/"+b+"的结果是否为无限循环小数:   " + isLoop(a, b));
            }
        }
    }

    展开全文
  • 思路:分数不能表示无限不循环小数。建立3个数组,一个放商,一个放余数,一个对应下角标的数若是余数则元素为1,即记录余数存在。循环除数加一次,若余数为0,则循环节长度为1,若当前得到的余数已经存在,则有循环...

    输入整数a和b(0<=a<=3000,1<=b<=3000),输出a/b的循环小数表示以及循环节长度。例如a=5,b=43,小数表示为

    0.(116279069767441860465),循环节长度为21;  

    思路:分数不能表示无限不循环小数。建立3个数组,一个放商,一个放余数,一个对应下角标的数若是余数则元素为1,即记录余数存在。循环除数加一次,若余数为0,则循环节长度为1,若当前得到的余数已经存在,则有循环节,求出2个相同余数的距离即为循环节长度。

      这个主要是怎么寻找循环节,在除法计算的过程中如何判断一个循环节已经出现了。循环节第二次出现意味着计算过程中的余数已经第二次出现。其实自己在草纸上写一个比如5/7就能发现。当商5的时候(5是循环节的最后一位)余数是5,这和第一次商0的时候(0是循环节前一位)余数也是五。然后用索引存储是否这个余数已经出现过,还有一个数组记录余数对应的商的位置。余数的范围是1~m-1,所以循环节最长是m-1,所以查询数组的大小根据m的值来设定


    1. #include <iostream>  
    2. #include <cstdlib>  
    3. #include <cstring>  
    4. #include <cstdio>  
    5.   
    6. using namespace std;  
    7.   
    8. int r[3003],u[3003],s[3003];  
    9.   
    10. int main()  
    11. {  
    12.     int n,m,t;  
    13.     while (cin >> n >> m) {  
    14.         t = n;  
    15.         memset(r, 0, sizeof(r));  
    16.         memset(u, 0, sizeof(u));  
    17.         int count = 0;  
    18.         r[count ++] = n/m;  
    19.         n = n%m;  
    20.         while (!u[n] && n) {  
    21.             u[n] = count;  
    22.             s[count] = n;  
    23.             r[count ++] = 10*n/m;  
    24.             n = 10*n%m;  
    25.         }  
    26.         printf("%d/%d = %d",t,m,r[0]);  
    27.         printf(".");  
    28.         for (int i = 1 ; i < count && i <= 50 ; ++ i) {  
    29.             if (n && s[i] == n) printf("(");  
    30.             printf("%d",r[i]);  
    31.         }  
    32.         if (!n) printf("(0");  
    33.         if (count > 50) printf("...");  
    34.         printf(")\n");  
    35.         printf("   %d = number of digits in repeating cycle\n\n",!n?1:count-u[n]);  
    36.     }  
    37.     return 0;  
    38. }  

    展开全文
  • 展开全部在数636f70793231313335323631343130323136353331333365666265的分类中,无限循环小数属于有理数。无限循环小数从小数点后某一位开始不断地出重复现前一个或一节数码的十进制无限小数。如2.1666…、35....

    展开全部

    在数636f70793231313335323631343130323136353331333365666265的分类中,无限循环小数属于有理数。

    无限循环小数

    从小数点后某一位开始不断地出重复现前一个或一节数码的十进制无限小数。如2.1666…、35.232323…等,被重复的一个或一节数码称为循环节。循环小数的缩写法是将第一个循环节以后的数码全部略去,而在保留的循环节首末两位上方各添一个小点。

    例如,2.166…缩写为 2.16(读作“二点一六,六循环”)、0.34103103…103…缩写为 0.34103(读作“零点三四一零三,一零三循环”)。在数的分类中,无限循环小数属于有理数。

    扩展资料:

    无限小数大小比较:

    同整数一样,小数的计数单位也按照一定的顺序排列起来,它们所占的位置叫做小数的数位。数位顺序为十分位、百分位、千分位、万分位、十万分位、百万分位……。

    小数的大小比较:先看整数部分,整数部分较大的,这个数就大;整数部分相同就看十分位,十分位较大的,这个数就大;十分位相同就看百分位,百分位较大的,这个数就大。以此类推。

    把小数点分别向右移动一位、二位、三位……,小数的值就分别相应扩大到原数的10倍、100倍、1000倍……。把小数点分别向左移动一位、二位、三位……,小数的值就分别相应缩小到原数的十分之一、 百分之一、 千分之一……。

    例如,要把7.4扩大到原数的10倍,只需将7.4的小数点向右移动一位,即74;若要把3.08缩小到原数的百分之一,只需将3.08的小数点向左移动2位,即0.0308(注意,当小数的位数不够时,需在前面加上相应个“0”)。

    展开全文
  • 0.0001 1001 1001 1001…(无限循环),因为数据的不同,有些数据在转换成二进制后会无限循环,但计算机是不允许无限循环的,对于无限循环小数,计算机会进行舍入处理。进行双精度浮点数的小数部分最多支持 52 位...
  • 循环小数

    千次阅读 2011-08-16 11:08:01
    1.1.2循环小数 1.1.2.1基本概念及定理  循环小数:一个数的小数部分,如果从某一位起,一个或几个数字依次不断地重复出现,这样的数就叫做循环小数循环小数是无限小数,它的位数是无限的。循环小数的小数...
  • 或者说是一个无限循环小数吗?在十进制下,圆周率的大小约为3.141592653589793……。数学家早已经在数学上严格地证明出圆周率是一个无理数,这意味着它是无限不循环小数。不管在二进制,还是八进制,或者十六进制,...
  • 循环小数(Repeating Decimals)

    千次阅读 2015-02-09 21:45:39
    输入整数a和b(0, 1),输出a/b的循环小数表示以及循环节长度。例如a=15,b=43,小数表示为0.(116279069767441860465),循环节长度为21。 【分析】  当整数相除的运算过程中再次出现了同一个余数,说明循环节...
  • 小数的二进制表示

    千次阅读 2021-07-26 09:06:32
    也许中学老师会告诉5、10、20等等的十进制数字怎么化成二进制数字,但又没有老师告诉你怎么将十进制的0.1变成二进制的小数呢?我们将一个十进制整数化为二进制是这样操作的:在十进制的计算法则中,将十进制数除以2...
  • 统计一个目录下所有文件总计大小难点在遍历所有子目录...二、文件与路径拼接方法,经time测试用f字符串拼接方式用os.path.join()方式拼接效率略高一些,而且书写也简洁一些。 import os def getdir1(path): name_
  • 给出一个循环小数X,X = 0.a1a2…an(b1b2…bm)。 (b1b2…bm)代表小数的循环节。例如:0.5 = 0.50 = 0.5(0) = 0.5(00) = 1/2, 0.3(3) = 0.333(33) = 1/3。求将这个循环小数转化为分数形式A/B(A和B的公约数必须为1)。...
  • 真正快速的小数组排序算法。 查看代码中的其他排序算法,例如 EcoSelection 排序,以更好地理解这一算法。 :) 这个想法是打开关于循环内选项的思想。 为什么一次只使用数组的 1 个值? 为什么不比较多个? 我希望这...
  • //创建一个小数类型的数组 //循环录入五个数字 //循环加入数组 double[] arr = new double[6]; for(int i = 1; i < arr.length; i++) { Scanner sc = new Scanner(System.in);//循环创建键盘录入 ...
  • 2、BigDecimal初始化赋值3、BigDecimal的加减乘除运算4、BigDecimal比较大小5、BigDecimal保留两位小数及舍入模式6、BigDecimal其他方法及常量 1、为什么要用BigDecimal ? 工作中我们通过浮点数进行运算时,好像时...
  • 循环节长度以及循环

    千次阅读 2019-07-24 13:17:34
    两个整数做除法,有时会产生循环小数,其循环部分称为:循环节。 比如,11/13=6=>0.846153846153….. 其循环节为[846153] 共有6位。 这是一道蓝桥杯的题目,试卷上是一个填空题,思路就是不断的对除数取余,...
  • printf的格式控制(C语言)

    千次阅读 2021-05-25 08:30:45
    printf的格式控制的完整格式:%-0m.nl或h格式字符下面对组成格式说明的各项加以说明:①%:表示格式说明的起始符号,不可缺少。...用于说明输出的实型数的小数位数。为指定n时,隐含的精度为n=6位。⑤l或h:l对整型指...
  • 循环小数的处理

    千次阅读 2008-09-02 01:44:00
    关于循环小数的处理问题描述: Write a program that will accept a fraction of the form N/D, whereN is the numerator and D is the denominator and print the decimalrepresentation. If the decimal ...
  • 为什么float类型数据不能直接比大小

    千次阅读 2019-10-20 12:16:53
    float类型数据不能直接比大小,需要做一些处理才行,这是由计算机采用二进制的方式存储数据导致的。 十进制整数转二进制: 十进制数除2,取余,从最后一个余数到第一个余数得到的数,即为转换后得到的二进制值。 ...
  • 二进制小数的意义

    千次阅读 2020-10-28 23:40:50
    小数末尾加上0或去掉0,小数大小不变,但是小数的意义会改变。 1.5的意义是,但1.50的意义是。 同理,二进制小数也可以这样来分析: … 十六位 八位 四位 二位 个位 . 二分位 四分位 八分位 十六分位 二进制...
  •  此题的关键是怎么判断商循环小数以及得到其循环部分。其实就是一个很简单的数学知识,如果两数相除,出现了两次相同的余数,则循环发生。 C#代码如下,其原理就是余数乘10再除以除数,若出现两次相同的余数,则可...
  • import java.util.Scanner; public class Demo5 { public static void main(String[] args) { Scanner input=new Scanner(System.in); System.out.println("请输入第一个数:"); int a=input.nextInt();...
  • 小数化成分数的方法

    2020-12-22 05:46:00
    教学目标掌握把整数或带分数化成假分数的方法.教学重点掌握把整数或带分数化成假分数的方法....《最简分数能否化成有限小数的规律》教学设计安徽省怀宁县洪铺镇中心学校 谢小珍一.复习。上节课,我们学...
  • 《分数和小数的互化》的教案

    千次阅读 2021-01-14 14:00:54
    第1篇:《分数和小数的互化》的教案课时课题小数化成分数,把分母是10、100、100......的分数化成小数课时1教学目标掌握把小数化成份数把分母是10,100,1000,......的份数化成小数的方法和步骤,并能正确、熟练地...
  • 由于要用到小数的自增,在使用计数器的时候发现并不支持小数,所以在请求前面加了BeanSell取样器 String a=vars.get("b"); //获取jmeter上的参数这里b=57 Float c= 0.01; //定义浮点型的参数 String d= String....
  • 2007-10-31请对计算机中的定点树,浮点数进行如果小数点的位置事先已有...如果小数点位置约定在最高数值位的前面,则该数只能是定点小数。 例如,假定用两个字节存放一个定点数,则以定点方式表示的十进制整数195如...
  • js 文件大小转化

    2021-03-22 14:19:12
    // b 参数:表示如果转换时出小数,四舍五入保留多少位 默认为2位小数 function formatBytes(a, b) { if (0 == a) return "0 B"; var c = 1024, d = b || 2, e = ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB...
  • 小数循环

    千次阅读 2014-11-02 16:44:06
    小数循环节:

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 55,930
精华内容 22,372
关键字:

循环小数的比大小