matlab阶乘和程序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab阶乘和程序相关的知识,希望对你有一定的参考价值。
参考技术Amatlab程序为:
function jiechenghe=fun(x)
jiechenghe=0;
s=1;
for i=1:x
s=s*i;
jiechenghe=jiechenghe+s;
end
应用:求n!的位数
可以将n!表示成10的次幂,即n!=10^M(10的M次方)则不小于M的最小整数就是 n!的位数,对该式两边取对数,有 M =log10^n!
即:M = log10^1+log10^2+log10^3...+log10^n。循环求和,就能算得M值,该M是n!的精确位数。
扩展资料:
对于复数应该是指所有模n小于或等于│n│的同余数之积,对于任意实数n的规范表达式为:正数 n=m+x,m为其正数部,x为其小数部;负数n=-m-x,-m为其正数部,-x为其小数部。
在 Common Lisp 中, 可以很方便的使用更为简洁的使用递归实现阶乘:
(defun factorial (n)
(cond
((> n 0) (* (factorial (- n 1)) n))
((= n 0) 1)
(t (error "N is smaller than 0."))))
参考资料来源:百度百科-n!
在matlab中使用for循环求1到10阶乘的值
用matlab设计程序如下:
for i=1:10
sum=1;
for j=1:i
sum=sum*j;
end
sum
end
运行结果显示,1到10的阶乘分别是: 1、2、 6、 24、120、 720、5040、40320、362880 、3628800。
运行结果如图:
扩展资料
MATLAB中for循环的语法是 -
for index = values
...end。
其中,values的值取如下格式:
源程序代码以及算法解释如下:
matlab求1-10的阶乘的函数源码如下:
function p = factorial()
p=1;
for a=1:10%设置要求的阶乘
for i=1:a%循环遍历从1到a
p=p*i;%遍历相乘
end;//函数结束
p%输出结果
p=1;%p还原其初始值
end
end
程序运行结果如下:
扩展资料:
C++实现求1到10的阶乘之和,代码如下:
#include<stdio.h>
int main()
double a,b=1,sum=0;
for(a=1;a<=10;a++)
b = a*b; /* 原理:1!等于1乘以1,2!等于1!乘以2,3!等于2!乘以3,以此类推 ,10!等于9!乘以10 */
sum = sum+b; /* 依次将1到10的阶乘相加 */
printf("%lf\\n",sum);
return 0;
同理,如果求一个已知整数Number1到另一个已知整数Number2的阶乘之和,只需在代码里做以下修改和替换:
#include<stdio.h>
int main()
double a,b=1,sum=0;
for(a=Number1;a<=Number2;a++) /* 在此处用具体的值替换Number1和Number2,如求10到100的阶乘之和,只需在此处用10替换Number1,100替换Number2 */
b = a*b;
sum = sum+b;
printf("%lf\\n",sum);
return 0;
这几个语句可以用:
参考技术C sum = 1;for i = 1:1:10
sum = sum * i;
end
disp(['10的阶乘 = ',num2str(sum)]); 参考技术D
以上是关于matlab阶乘和程序的主要内容,如果未能解决你的问题,请参考以下文章