阶乘是如何计算的?

2024-01-14

说有一个计算阶乘(n)的函数

阶乘(7)是否为从1到7的n中的每一个创建7个函数对象

并在必要时使用这些值(对于阶乘(8),如阶乘(7)* 8)


这取决于语言和语言实现。

在许多函数式语言(例如 Haskell)中,函数保证不会改变任何内容;只是为了返回一个值。由于没有副作用,语言可以记住/缓存或“记忆”函数调用的结果。

在不太复杂的语言中,可能会将 7 个不同的函数调用帧放置在堆栈上并弹出。

在许多函数语言中正确编写的阶乘函数也是尾递归的;在这种情况下,语言可能会选择简单地从函数底部跳转到顶部,以避免创建另一个函数调用。在这种情况下,语言将递归函数“免费”转变为循环。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

阶乘是如何计算的? 的相关文章

  • 如何使用库调用计算 C# 中的阶乘?

    我需要计算 100 左右的数字的阶乘 为了确定一系列硬币翻转式数据是否是随机的 根据这是关于贝叶斯概率的维基百科条目 正如您所看到的 必要的公式涉及 3 个阶乘计算 但有趣的是 其中两个阶乘计算是在第三个阶乘计算的过程中计算的 I saw
  • python中大数的阶乘

    这是我的阶乘方法 def factorial n Returns factorial of n r 1 for i in range 1 n 1 r i return r 我认为这非常简单 但我猜你可以做得更有效 因为像 100000 这样
  • R 中的阶乘记忆化

    我编写这个函数来查找数字的阶乘 fact lt function n if n lt 0 cat Sorry factorial does not exist for negative numbers n else if n 0 cat T
  • R 中是否有可用于计算大阶乘的包或技术?

    如果我计算factorial 100 然后我得到的答案是 1 9 332622e 157但是当我尝试计算更大的阶乘时 比如说factorial 1000 我得到的答案是 1 Inf 有没有办法在计算阶乘时使用任意精度 以便我可以计算说fac
  • 简单的 C++ 阶乘程序

    作为家庭作业 我需要一个读取非负整数并计算和打印其阶乘的程序 到目前为止我已经编写了代码 但是如果我尝试输入 50 结果是 0 它适用于较小的数字 任何帮助将非常感激 include
  • 在java中计算比int和long更大的阶乘?

    在这里和谷歌搜索了几天 并询问了我的编程朋友 不幸的是 我仍然不明白如何更改我的代码 我的程序计算给定数字的阶乘 然后它提供一个数字 表示阶乘答案包含多少位数字 然后将这些数字的值相加得出总数 我的程序适用于 1 之间的任何数字 和 31
  • 使用 Rmpfr/gmp 库,x>170 的阶乘(x)

    我想解决的问题是以下函数的无限和 对于总和 我使用 FTOL 确定标准 整个术语不会产生任何问题 直到z变得非常大 我期望的最大值z大约 220 正如您所看到的 第一项在阶乘 221 附近具有最大值 因此必须在阶乘 500 附近移动 直到达
  • Java中的尾递归函数仍然会破坏堆栈

    我正在尝试实现尾递归阶乘计算器 但仍然出现堆栈溢出 谁能帮我找出原因吗 我读过 Java 8 支持 Tail 调用优化 但我想我一定没有正确实现它 我读到可以使用 lambda 表达式 我不确定我是否完全理解这个概念 但我仍在阅读 我只是在
  • 计算 100 阶乘中的数字总和

    编辑 更改标题以匹配实际的问题陈述 我正在编写一个函数来计算 100 中的数字之和 但我似乎有两个大问题 实际结果100 仅精确到前几个数字 实际结果为 9332621544394415268169923885626670049071596
  • 实现阶乘函数时出现“所有控制路径递归”错误

    对于课堂 我有一个作业 编写一个 C 程序 输出您可以选择的不同方式的数量k一组中的对象n对象 两者n and k应为正整数 该数字由以下公式给出 C n k n k n k 您的程序应该使用两个返回值的函数 第一个应该叫factorial
  • 并行阶乘计算

    我想编写一个程序 使用并行计算 Open MP 库 来计算整数的阶乘 显然 下面的程序存在竞争条件 Each loop iteration writes a value that a different iteration reads pr
  • 从 pmdarima 导入 auto_arima 时:错误:无法从 'scipy.misc' 导入名称 'factorial'

    我有 python 3 7 1 和 scipy 版本 1 3 0 我在调用 auto arima 时遇到错误 无法从 scipy misc 导入名称 factorial 只是这个基本的导入导致了问题 从 pmdarima arima 导入
  • C#计算阶乘

    我有这段代码 它从用户那里获取输入并计算其阶乘和小于输入数字的阶乘 但我一直只获取第一个数字的阶乘 其余为 0 它应该是这样的 例如 如果输入为 5 5 120 4 24 3 6 2 4 1 1 如何让循环遍历输入数字下面的所有数字 usi
  • 阶乘是如何计算的?

    说有一个计算阶乘 n 的函数 阶乘 7 是否为从1到7的n中的每一个创建7个函数对象 并在必要时使用这些值 对于阶乘 8 如阶乘 7 8 这取决于语言和语言实现 在许多函数式语言 例如 Haskell 中 函数保证不会改变任何内容 只是为了
  • Python中的递归(阶乘函数)

    我希望这不是一个太愚蠢的问题 但是为什么这段 Python 代码中的 return 1 语句会返回数字的阶乘 return True 也会发生这种情况 我理解它相当于 return 1 def factorial n if n 0 retu
  • Groovy 的尾递归

    我编写了 3 个阶乘算法 我预计会因堆栈溢出而失败 没问题 我尝试尾递归调用 并将以前的算法从递归转换为迭代 它不起作用 但我不明白为什么 I use trampoline 方法 效果如我所料 def factorial factorial
  • 需要递归生成文件数组的每个唯一组合

    我研究并发现LOTS类似的请求 但没有什么是我所需要的 这是我的问题 我正在使用 C 工作 并且有一个 FileInfo 数组 其中包含未知数量的元素 FileInfo files new FileInfo new FileInfo C a
  • 在 C# 中处理非常大的整数

    有谁知道我可以在 C 中计算非常大的整数的方法 我正在尝试计算数字的阶乘 例如 5 5 4 3 2 1 120 对于小数字 这不是问题 但尝试计算 unsigned int 的最大值 4 294 967 295 的阶乘似乎是不可能的 我已经
  • 如何在for_each方法中使用自己类的函数?

    假设我有这个类 继承自 std Vector 这只是一个例子 include
  • 字符串的渐进单词组合

    我需要获得字符串的渐进单词组合 例如 这是字符串 输出 这是字符串 这是 这个字符串 是字符串 这 是 细绳 你知道类似的算法吗 我需要php语言 谢谢 这是解决您问题的简单代码 我将每个字符串递归地连接到数组中的其余字符串 string

随机推荐