在JavaScript中寻找一个非常快速的factorial函数实现.有什么建议?
我疯了:因子的Ruby函数在哪里?不,我不需要教程实现,我只想要库中的函数.这不是数学!
我开始怀疑,这是一个标准的库函数吗?
哪个函数增长得更快,指数(如2 ^ n,n ^ n,e ^ n等)或阶乘(n!)?Ps:我刚读到某个地方,n!增长快于2 ^ n.
O(n!)函数的示例(在代码中)是什么?应该参考n运行适当数量的操作; 也就是说,我在问时间的复杂性.
我很好奇是否有一个很好的方法来做到这一点.我目前的代码是这样的:
def factorialMod(n, modulus):
ans=1
for i in range(1,n+1):
ans = ans * i % modulus
return ans % modulus
Run Code Online (Sandbox Code Playgroud)
但它似乎很慢!
我也无法计算n!然后应用素数模数,因为有时n是如此之大,以至于n!明确计算是不可行的.
我也遇到过http://en.wikipedia.org/wiki/Stirling%27s_approximation,想知道这是否可以在某种程度上使用?
或者,我如何在C++中创建一个递归的,memoized函数?
有没有办法比较两个数字中哪个阶乘数更大而不计算?
场景是我正在创建ac#console应用程序,它需要两个因子输入
123!!!!!!
456!!!
Run Code Online (Sandbox Code Playgroud)
我想要做的就是比较哪个阶乘值大于其他因素,我所做的代码片段
try
{
string st = Console.ReadLine();
Int64 factCount = 0;
while (st.Contains('!'))
{
factCount = st.Where(w => w == '!').Count();
st = st.Replace('!', ' ');
};
decimal result = 1 ;
for (Int64 j = 0; j < factCount; j++)
{
UInt64 num = Convert.ToUInt64(st.Trim());
for (UInt64 x = num; x > 0; x--)
{
result = result * x;
}
}
if (factCount == 0)
{
result = Convert.ToUInt64(st.Trim());
}
string st2 = Console.ReadLine(); …
Run Code Online (Sandbox Code Playgroud) 我正在研究学校的时间复杂度,我们的主要关注点似乎是多项式时间 O(n^c)
算法和准线性时间 O(nlog(n))
算法,偶尔的指数时间 O(c^n)
算法作为运行时透视的一个例子.然而,从未涉及处理更大的时间复杂性.
我想看一个在阶乘时间内 运行的算法解决方案的示例问题O(n!)
.该算法可能是一种解决问题的简单方法,但不能人为膨胀以在因子时间运行.
如果因子时间算法是解决问题的最着名的算法,则额外的街道信誉.
我知道这听起来像一个愚蠢的问题,但这里是:Haskell中是否有内置因子?
Google给了我关于Haskell的教程,解释了我如何自己实现它,而且我在Hoogle上找不到任何东西.我不想每次需要时都重写它.
我可以product [1..n]
用作替代品,但是有一个真正的Int -> Int
阶乘内置函数吗?
我正在编写一个脚本,为插入的数字提供阶乘,但我在乘法时遇到了一些问题.
注意:因子由下式给出:9!= 9*8*7*6*5*4*3*2*1
这是我的代码:
#!/bin/bash
echo "Insert an Integer"
read input
if ! [[ "$input" =~ ^[0-9]+$ ]] ; then
exec >&2; echo "Error: You didn't enter an integer"; exit 1
fi
function factorial
{
while [ "$input" != 1 ];
do
result=$(($result * $input))
input=$(($input-1))
done
}
factorial
echo "The Factorial of " $input "is" $result
Run Code Online (Sandbox Code Playgroud)
它不断给我不同的乘法技术的各种错误:/
目前输出是:
joaomartinsrei@joaomartinsrei ~/Área de Trabalho/Shell $ ./factorial.sh
Insert an Integer
3
./factorial.sh: line 15: * 3: syntax error: operand expected (error token …
Run Code Online (Sandbox Code Playgroud)