我最近开始用C语言编程,作为我的第一个严肃的程序,我想我应该创建一个简单的计算器。为了使它更加复杂,我决定不使用math.h中包含的函数(比如pow),而是自己创建这些函数。如果我能做些什么来改进这个代码,请告诉我。
#include
double power(double x, double y, double r) // This function calculates the power and takes numer1, number2 and the results
{
我有一个:
def main():
input1 = input('Enter an integer for the base:')
input2 = input('Enter an integer for the exponent:')
main()
,这是我完全需要做的:
创建一个主函数和一个幂函数。完成一半,
提示用户输入电源基的整数。完成.
提示用户输入幂指数的整数。完成.
调用幂函数并打印其返回值。可以做.
递归幂函数,幂(基,指数),必须递归计算幂的值,然后返回它。在这方面需要帮助.
在过去的两天里,我一直在尝试学习递归函数的内
我试图在haskell中编写一个幂函数,它将f计算成n的幂,其中f是函数本身,使用函数组合。
到目前为止,这就是我所拥有的:
let pow 0 f = (\x -> x)
pow n f = f . (pow (n-1) f)
in 2 ((\x -> x+1) 2)
我期望它将函数f(x)=x+1传递给幂函数,并返回函数的平方。我尝试将值2传递给f(x)函数,因此我认为它将返回4。
当我在haskell.org上运行它时,我得到:
:: (Num a, Num (a -> t)) => t
我教我的C与K&R这本书,并感到困惑的幂函数从1.7个例子。
当我从“代码::块”一书中给出的例子编写代码时,出现了一个错误:未定义的对“power”的引用。
这些守则如下:
#include <stdio.h>
#include <stdlib.h>
int power(int m, int n);
main ()
{
int i;
for (i = 0; i < 10; ++i)
printf("%d %d %d\n", i, power(2, i), power(-3, i));
return
当数组的大小为512时,MATLAB的幂函数用于计算一个常数基和一个指数数组的按元素方向指数的幂函数变得非常快。我预计计算时间会随着输入大小的增加而增加,但是,当指数数组中有512个元素时,计算时间会明显下降。下面是一个示例代码
x_list = 510:514;
for i = 1:numel(x_list)
x = x_list(i);
tic
for j = 1:10000
y = power(2,1:x);
end
toc
end
代码的输出是
Elapsed time is 0.397649 seconds.
Elapsed
我很难理解在SML中只使用迭代和乘法实现幂函数的方法。
我的迭代如下:
fun iterate 0 f x = x
| iterate n f x = iterate (n-1) f (f x);
而我的乘法基本上是递归迭代
fun multiply 0 f = 0
| multiply f x = iterate x (fn x => x + 1) (multiply x (f-1));
幂函数基本上是同一个基乘法的迭代,但我不知道要减少哪一个值。
power n f = iterate (mult n n) (fn x => x + 1) (power (n) (f-1
我得到了这个测试,我需要写通过的代码。 但我只能得到:“断言1与预期6匹配失败”如果我返回6,我会得到“第18行函数的参数太少,而预期恰好是3” 这是测试: public function powerTest()
{
$calculator = new Calculator();
$this->assertEquals(6, $calculator->power(1,2,3));
$this->assertEquals(0, $calculator->power());
} 这是我的代码: public function po
function man(){
function add(a,b){
return a+b;
}
function sub(a,b){
return a-b;
}
function pow(a){
return a**a;
}
}
man('pow',2);
有没有办法使用调用“man(‘power’,2)”来调用幂函数?
我正在尝试使用OpenBUGS来拟合一个模型。以下是代码:
model {
# N observations
for (i in 1:N) {
y[i] ~ dbin(p.bound[i],1)
p.bound[i]<-max(0,min(1,p[i]))
logit(p[i])<-Xbeta[i]
Xbeta[i] <- a[sp[i]]-0.5*pow(((X1[i]-opt1[sp[i]])/tol1[sp[i]])+((X2[i]-opt2[sp[i]])/tol2[sp[i]])+((X3[i]-opt
我正在尝试使用c++计算65^17。我写了下面的代码,但在65^11时得到了错误的值。计算答案的正确方法是什么?(例如,65^17)
代码:
long double data= 1;
int m_ne=17;
int i_data=65;
for(int i=1;i<= m_ne;i++)
{
data = data * (i_data);
std::cout.precision(15);
std::cout<<" "<<std::fixed <<data<<std::endl;
}
输出
我正在尝试计算x1^i * x2^j * x3^k * ......
这是我到目前为止的代码:
for l = 1:N
f = 1;
for i = 0:2
for j = 0:2-i
for k = 0:2-j
for m = 0:2-k
g(l,f) = x1(l)^i*x2(l)^j*x3(l)^k*x4(l)^m;
f = f+1;
end
end
end
end
end
在没有循环的情况下,我如何才能更容易地做到这一点?
我希望写我自己的幂函数来处理NSDecimalNumbers和非整数的指数。我首先尝试使用牛顿方法和内置整数幂方法的组合,但由于牛顿方法,当我有超过2个小数的指数时,我会得到溢出错误。所以我想也许浮点值的幂函数可以作为我自己的函数的一个很好的模型。所以我想知道是否有人知道我可以在哪里找到一些关于pow函数内部工作原理的文档?
编辑:
@ am bat57,这些链接看起来可能是我正在寻找的,但我不知道怎么去读它们。您建议的算法实际上就是我正在使用的算法。由于非常大的指数,溢出来自于newtons方法。因为我得到的是十进制形式的指数,所以我必须先把它转换成分数。据我所知,在代码中实现这一点的唯一方
我用python为下面的codechef问题编写了以下程序
import sys
tokenizedInput = sys.stdin.read().split()
mod=1000000007
arr=[1]*5001
for i in range(1,5001):
arr[i]=(arr[i-1]*i)%mod
def combo(r,n,mod):
q=arr[n]
print q
r=(arr[r]*arr[n-r])
print r
return ((q/r)%mod)
elm=0
for i in range (0,5001)