问题标签 [factorial]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
6592 浏览

algorithm - 如何计算实数的反阶乘?

有没有办法计算实数的反阶乘?

例如 -1.5 ! = 1.32934039

1.5如果我有价值,有什么方法可以取回1.32934039吗?

我在尝试

http://www.wolframalpha.com/input/?i=Gamma^(-1)[1.32934039]

但这是失败的。

0 投票
3 回答
903 浏览

lambda - 为什么 `let` 不能用于命名内部递归过程?

考虑以下计算阶乘的函数实现:[1]

我尝试使用let内部定义重写:

当时没有报错define,但是执行的结果是:

我怎样才能使let版本工作?

方案版本是 SISC v 1.16.6

[1]基于SICP http://mitpress.mit.edu/sicp/full-text/book/book-ZH-11.html#%_sec_1.2.1factorial 1.2.1节的迭代版本

0 投票
7 回答
2573 浏览

c++ - 最快的 64 位阶乘实现导致汇编

这不是家庭作业,只是我想到的。因此,直接计算阶乘并不是很快;记忆化会有所帮助,但如果结果适合 32 位或 64 位,则阶乘只能分别用于输入0和。所以......我们不妨使用查找表:1220

所以,假设我想要一个使用内联汇编的内联 C++ 阶乘函数,结果是 32 位或 64 位无符号整数。如果输入为负数或大到足以导致溢出,则输出应为 0。如何在汇编中做到这一点,以便消耗最少的周期?此代码将在 64 位 Intel/AMD 架构上运行。如果可行,我有兴趣改善最坏的情况,因此20!计算时间不应该比0!- 希望有一种二进制搜索方法。希望有一个聪明的技巧来做if (n == 0 || n == 1) { return 1; }。另外,如果输出需要是 32 位的,那么我认为汇编指令可以同时包含代码和数据。我的组装知识很薄弱。如果这个问题没有多大意义,请告诉我。

能够在 C++ 中使用该函数会很好 - 使它成为一个更现实的问题。例如,如果调用一个函数很昂贵,那么尝试在程序集主体中节省 1-2 个时钟周期将无济于事。

0 投票
4 回答
2124 浏览

c - 阶乘-C (Linux)

请建议我一个更有效的替代方案来执行此计划

0 投票
2 回答
789 浏览

regex - 正则练习:阶乘

这是 StackOverlow 的一个实验性新功能:通过解决各种经典问题来锻炼你的正则表达式肌肉。没有一个正确的答案,事实上我们应该收集尽可能多的正确答案,只要它们具有教育价值。接受所有口味,但请清楚记录。尽可能提供测试用例/片段来证明该模式“有效”。

我们如何使用正则表达式找到数字x是否是阶乘?

奖励:如果模式可以确定x = n!, 它也能找到n吗?

0 投票
5 回答
6328 浏览

c - C中数字的排列

我正在尝试编写一个 C 函数来列出一组数字的所有排列,以五个为一组,包括重复数字:

所以很容易编写一个函数来抓取一个数字集的所有排列并将它们扔掉,但是映射到某个组大小,我有点卡住了..

0 投票
7 回答
3153 浏览

c - 如何计算 x 的阶乘

如何得到一个整数的值,用x表示x!,它是数字 1 到 x 的乘积。

例子:5! 1x2x3x4x5 = 120.

0 投票
4 回答
324 浏览

java - Java:简单的递归函数只返回 1

奇怪的是,这是我的第一个 Java 应用程序,我想实现一个任意精度的阶乘函数,我做了递归的很好,但我的迭代的只是输出“1”,没有别的。对我来说太晚了,我不明白为什么,我不确定我哪里出错了,这里有什么明显的吗?

如果您没有注意到它使用 BigInteger 包,请注意奇怪的文字。

另外,像 C 一样,你能做一些类似于 typedef 的事情,所以我不需要每次都输入“BigInteger”吗?

编辑:我想我的意思是设置retn,可能是这样,或者..也许不是。

0 投票
3 回答
1963 浏览

c# - 需要递归地生成文件数组的每个唯一组合

我研究并发现了很多类似的请求,但没有什么是我需要的。

这是我的问题。我正在使用 C#,并且我有一个 FileInfo[] 数组,其中包含未知数量的元素。

而且我需要生成这些文件的每个可能的重新排序组合的列表,而不重复这些文件。

所以,我的一些结果会是这样的(示例不是代码格式):

以此类推,直到我想出所有可能的组合

所以结果的总数应该是数组中元素数量的阶乘。在这个例子中,有 9 个元素,所以应该有 9*8*7*6*5*4*3*2*1=362,880 种可能的组合。

我已经搞砸了这几天了,我就是不能把它包起来。任何帮助表示赞赏,尤其是代码示例!

谢谢!

0 投票
9 回答
1250 浏览

c# - C#:尽可能高效地将大量文件放入 DVD 的代码

我需要编写一个应用程序,它将获取文件列表(一些大的,一些小的)并尽可能高效地将它们放入 DVD(或 CD 或其他任何东西)上。这个应用程序的重点是在移动到第二个圆盘之前用完尽可能多的第一个圆盘,在移动到第三个圆盘之前尽可能多地填充第二个圆盘,等等。

(注意:应用程序不必对 DVD 进行实际的刻录,它只需要找出最适合的方式)。

我最初认为我有一个很好的游戏计划,通过生成文件的排列然后检查每个组合以查看最适合的组合。(我在这方面的帮助请求可以在这里找到)

但是文件越多,花费的时间就越长……成倍增长。所以我想听听你对如何最好地实现这一目标的看法。

有任何想法吗?而且,一如既往,C# 代码总是受到赞赏。