首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >阶乘数系算法的形式证明

阶乘数系算法的形式证明
EN

Stack Overflow用户
提问于 2020-12-16 07:58:22
回答 1查看 116关注 0票数 1

我想出了一个算法,用于在阶乘数系统中找到给定数字的表示。我很难用正式的方式证明它的正确性。以下是Python中的代码(请注意k!= s):

代码语言:javascript
运行
复制
def fns(n):
    s = 1
    k = 1
    while s * (k + 1) <= n:
        k = k + 1
        s = s * k
    while k >= 1:
        print(n // s, end = "")
        n = n % s
        s = s // k
        k = k - 1
EN

回答 1

Stack Overflow用户

发布于 2020-12-16 09:50:07

实际上,很难“证明”一个带有"print“语句的程序。最好是将值附加到列表中,然后打印或返回列表,以便。你有一些理由可以反驳。因此,让我们假设您在某处拥有result = [],并且您的"out +=“语句是result.append(n//s)

所以。您有两个循环,并且需要两个循环不变量。对于第一次查看,您需要显示该s = k!。对于第二个循环,您需要显示附加了k零的resultthe_value_of_n_passed_as_an_argument_to_the_function - n的阶乘表示。这两个都应该是相对简单的。最后,您得到了k == 0,这意味着resultn原始值的阶乘表示。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65315399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档