gpt4 book ai didi

linux - bash 脚本查找排列总数

转载 作者:太空宇宙 更新时间:2023-11-04 04:40:26 25 4
gpt4 key购买 nike

我正在编写一个 bash 脚本来查找总数量。排列(用于数学)其公式为 n!/(n-r)!,但我使用的脚本给出的输出值与预期不同。有人能找出我的错误吗?我是 bash 脚本编写的新手。

echo "Enter no. to find factorial"
read num
fact=1
while [ $num -gt 0 ]
do
fact=`expr $num \* $fact`
num=`expr $num - 1`
done

echo "Enter value for r"
read num1
num2=$((num-num1))

fact1=1
while [ $num2 -gt 0 ]
do
fact1=`expr $num2 \* $fact1`
num2=`expr $num2 - 1`
done

echo "Total no. of permutations $((fact/fact1)) "

最佳答案

无需调用另一个程序 (expr),因为 Bash 完全能够计算整数算术(请参阅 man bash 中的ARITHMETIC EVALUATION)。以下代码片段可能会对您有所帮助:

fact=1     
for ((i=4; i>1; i--)) do
((fact*=i))
done
echo $fact

#echo $((4+4)) # Arithmetic Expansion might also be useful

输出

24

关于linux - bash 脚本查找排列总数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39159291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com