Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 当我想要得到期望分数F,使得F=X/Y时,我们能写出一个算法,给出两个整数X和Y吗?_Algorithm - Fatal编程技术网

Algorithm 当我想要得到期望分数F,使得F=X/Y时,我们能写出一个算法,给出两个整数X和Y吗?

Algorithm 当我想要得到期望分数F,使得F=X/Y时,我们能写出一个算法,给出两个整数X和Y吗?,algorithm,Algorithm,我正在准备一个测试数据集,在其中我必须检查舍入。假设我想检查四舍五入、四舍五入和四舍五入是否在小数点后10位正确工作 然后 如果X=100且Y=54,则X/Y=1.8518518519(测试轮等距) 如果X=10,Y=7,则1.4285714285714285714285714285714(测试四舍五入) 如果X=10,Y=3,则为3.3333333333(测试四舍五入) 我们能写一个算法吗 输入将是舍入模式(向上舍入、向上舍入、向下舍入)和我想要舍入的小数位(在我们的示例10中) 输出将是X和

我正在准备一个测试数据集,在其中我必须检查舍入。假设我想检查四舍五入、四舍五入和四舍五入是否在小数点后10位正确工作

然后

  • 如果X=100且Y=54,则X/Y=1.8518518519(测试轮等距)
  • 如果X=10,Y=7,则1.4285714285714285714285714285714(测试四舍五入)
  • 如果X=10,Y=3,则为3.3333333333(测试四舍五入)
  • 我们能写一个算法吗

  • 输入将是舍入模式(向上舍入、向上舍入、向下舍入)和我想要舍入的小数位(在我们的示例10中)
  • 输出将是X和Y,如上图所示

  • 如果所需位置为
    p
    (在您的示例中为=10),则
    y=10^p
    ,然后您可以选择所需的任何
    x


    根据您使用的语言,
    p
    可能太大,您无法执行
    10^p
    ,因此在最坏的情况下,只需将
    x/y
    的结果除以10、100或任何必要的值即可。

    如果所需的位置是
    p
    (在您的示例中为=10),然后
    y=10^p
    ,然后您可以选择所需的任何
    x


    根据您使用的语言,
    p
    可能太大,您无法执行
    10^p
    ,因此在最坏的情况下,只需将
    x/y
    的结果除以10、100或任何必要的值即可。

    或者您可以这样做

    # n = number of fraction you want to return
    def getFraction(a, b, n):
        result = ""
    
        for i in range(n):
            f = int((a % b) * 10 / b)
            result += str(f)
            a = a * 10 - b * f
    
        return result
    
     getFraction(10, 7, 11) # return 42857142857 which 10/7 = 1.42857142857...
    

    我所做的就像你在小学里所学的如何用笔和纸进行除法。

    或者你可以这样做

    # n = number of fraction you want to return
    def getFraction(a, b, n):
        result = ""
    
        for i in range(n):
            f = int((a % b) * 10 / b)
            result += str(f)
            a = a * 10 - b * f
    
        return result
    
     getFraction(10, 7, 11) # return 42857142857 which 10/7 = 1.42857142857...
    

    我所做的就像你在小学里学的如何用笔和纸除法。

    实际上,如果要求的数字是
    d
    ,那么如果
    d
    不是9,答案将是
    x=d,y=9
    ,而不管
    p
    是数字的位置。如果
    d
    是9,那么如果
    p
    是奇数,那么答案是
    x=10,y=11
    ,如果
    p
    是偶数,
    x=1,y=11
    。如果
    d=0
    的一个微不足道的答案不行,那么
    d=9
    的镜像答案是合适的,也就是说,如果
    d=0
    p
    是奇数,答案是
    x=1,y=11
    ,如果
    p
    是偶数,
    x=10,y=11
    。比y=10^p的答案要短得多,而且几乎适用于任何架构。

    事实上,如果要求的数字是
    d
    ,那么如果
    d
    不是9,答案将是
    x=d,y=9
    ,而不管
    p
    是数字的位置。如果
    d
    是9,那么如果
    p
    是奇数,那么答案是
    x=10,y=11
    ,如果
    p
    是偶数,
    x=1,y=11
    。如果
    d=0
    的一个微不足道的答案不行,那么
    d=9
    的镜像答案是合适的,也就是说,如果
    d=0
    p
    是奇数,答案是
    x=1,y=11
    ,如果
    p
    是偶数,
    x=10,y=11
    。比回答
    y=10^p
    要短得多,而且几乎适用于任何体系结构。

    X
    y
    还有其他要求吗?因为否则,您可以选择
    Y=10^{所需的位数+1}
    ,并轻松选择
    X
    。这是一个在Rosetta code网站上用多种语言解决的问题:
    X
    Y
    是否还有其他要求?因为否则,您可以选择
    Y=10^{所需的位数+1}
    ,并轻松选择
    X
    。这是一个在Rosetta code网站上用多种语言解决的问题:
    X
    Y
    是否还有其他要求?因为否则,您可以选择
    Y=10^{所需的位数+1}
    并轻松选择
    X
    。这是一个在Rosetta代码站点上用多种语言解决的问题:.10作为示例。我的输入是这样的,给我两个整数X和Y,当我除以它们时,分数在假设的第6位有5。同样,从你的例子X=100和Y=54在第10位给你5,你可以把X乘以10^(某物),得到X/Y=1851.8518518518 5 185110作为一个例子。我的输入是这样的,给我两个整数X和Y,当我除以它们时,分数在假设的第6位有5。同样,从你的例子X=100和Y=54在第10位给你5,你可以把X乘以10^(某物),得到X/Y=1851.8518518518 5 185110作为一个例子。我的输入是这样的,给我两个整数X和Y,当我除以它们时,假设第6位的分数是5。同样,从你的例子中,X=100和Y=54在第10位给你5,你可以把X乘以10^(某物),得到X/Y=1851.851851855 1851