这是哪一部分非负整数? (阶乘错误)
这是脚本:这是哪一部分非负整数? (阶乘错误)
n=input('Enter the number of rows: ')
PT=zeros(n);
row=1;
col=1;
while row~=n+1
for col=1:1:n
PT(row, col)=(factorial(row-1)/(factorial(col-1)*factorial(row-col)));
end
row=row+1;
col=1;
end
PT
当我运行它,它说,进入的行数,所以我输入“4”。然后它说
error: factorial: all N must be real non-negative integers
error: called from
factorial at line 40 column 5
hw6p2 at line 7 column 17
我不明白什么是错的。
在行for col=1:1:n
,col
最多可以获得价值n
,即使row
仍然1
。因此,当您拨打factorial(row-col)
时,row
可以是1
和col
可以是2
。这是它可能是负面的地方。
这应该是IMO的评论,因为这不能解决问题。它只表示问题 –
问题是他们的代码的哪一部分导致负因子。我认为这回答了这个问题。 –
有时答案可能是偶数/是,但这并不是一个合适的答案IMO –
您的阶乘输入不应该为负.....在循环(行 - 列)中取一个负值并弹出错误。使用abs始终保持正确。
n=input('Enter the number of rows: ')
PT=zeros(n);
row=1;
col=1;
while row~=n+1
for col=1:1:n
PT(row, col)=(factorial(row-1)/(factorial(col-1)*factorial(abs(row-col))));
end
row=row+1;
col=1;
end
PT
你想在这里实现什么?什么公式? –
从帮助中心引用*“寻求调试帮助的问题(”为什么不是这个代码工作?“)必须包含* ***所需的行为***,... *请参阅:如何创建[MCVE ]。“* –
您从帮助中心中删除了部分引用,说明此问题在指导范围内。 寻求调试帮助的问题(“为什么这个代码不工作?”)必须包含所需的行为,特定的问题**或错误以及在问题本身中重现问题所需的最短代码** –