如何在 Swift 中计算 nPr 的值?

swiftserver side programmingprogramming

nPr 称为 n 排列 r,其中 n 表示总数,r 表示元素的排列。排列是指元素按指定顺序排列。元素可以按顺序排列,也可以按线性顺序排列,例如,我们有一组元素 [2, 4],因此排列为:[4, 2], [2, 4]。在排列中,元素的顺序很重要,而在组合中,元素的顺序并不重要。

我们可以借助以下公式计算 nPr 的值:

公式

nPr = n!/(n - r)!

示例演示

输入 1

n = 10 , r = 5

输出


输入

n = 8 , r = 4

输出


这里,我们有 n = 10 和 r = 5,因此 nPr 的值是 30240。同样,n = 8 和 r = 4,因此 nPr 的值为 1680。

算法

步骤 1 − 创建一个函数来查找给定数字的阶乘。

步骤 2 − 创建另一个函数,根据给定公式计算 nPr。

步骤 3 − 声明两个变量来存储 N 和 R 的值。

步骤 4 − 现在调用 nPr 函数并将 N 和 R 传递给它。

步骤 5 − 显示输出。

示例

在下面的 Swift 程序中,我们计算 nPr 的值。因此,我们首先创建一个名为 findFactorial() 的函数来计算指定数字的阶乘。然后将创建另一个名为 calculateNPR() 的函数来查找给定 nPr 的值。在这个函数中,我们首先检查 n 和 r 的值是否有效。如果无效,则返回 −1,表示 n 或 r 的值无效。如果 n 和 r 的值有效,则我们将使用给定的公式找到 nPr 的值并返回 nPr 的最终值。在这里,为了找到阶乘,我们将使用 findFactorial() 函数。

import Foundation
import Glibc

// 计算阶乘的函数
func findFactorial(number: Int) -> Int 
{
    var fact = 1
    for x in 1...number {
        fact *= x
    }
    return fact
}

// 计算 nPr 的函数
func calculateNPR(n: Int, r: Int) -> Int {

    if n < 0 || r < 0 || r > n {
        return -1 
    }
    
    let numerator = findFactorial(number:n)
    let denominator = findFactorial(number: n - r)
    let nPr = numerator / denominator
    return nPr
}

// Test case
let N = 10
let R = 5

let resultantNPR = calculateNPR(n: N, r:R)

if resultantNPR != -1 {
    print("\(N)P\(R):", resultantNPR)
} else {
    print("Please enter a valid input")
}

输出

10P5: 30240

示例

在下面的 Swift 程序中,我们计算 nPr 的值。因此,我们首先创建一个名为 findFactorial() 的函数来计算指定数字的阶乘。然后创建另一个名为 calculateNPR() 的函数来查找给定 nPr 的值。在此函数中,我们将使用给定的公式查找 nPr 的值并返回 nPr 的最终值。在这里,我们将使用 findFactorial() 函数来查找给定数字的阶乘。

import Foundation
import Glibc

// 计算阶乘的函数
func findFactorial(number: Int) -> Int 
{
    if (number <= 1){
        return 1
    }
    return number * findFactorial(number: number - 1)
}

// 计算 nPr 的函数
func calculateNPR(n: Int, r: Int) -> Int {

    let nPr = findFactorial(number: n)/findFactorial(number: n-r)
    return nPr
}

// Test case
let N = 6
let R = 3

let resultantNPR = calculateNPR(n: N, r:R)
print("\(N)P\(R):", resultantNPR)

输出

6P3: 120

nPr 的实际用途

nPr 值的实际用途是:

  • 您可以使用 nPr 来计算安全密码。

  • 使用 nPr 您可以安排座位。

  • 使用 nPr 您可以找到游戏或彩票中的可能组合。

  • 它还可用于创建安全加密算法。

结论

这就是我们计算 nPr 值的方法。nPr 通常用于计数排列、概率、组合分析、重复排列等。它是数字或元素排列的一种方式。因此您可以使用上述任何一种方法来计算 nPr 的值。


相关文章