Function to calculate the factorial of a number

factorial <- function(n) { if (n == 0) { return(1) } else { return(n * factorial(n - 1)) } }

Function to calculate the binomial coefficient

binomial_coefficient <- function(n, k) { return(factorial(n) / (factorial(k) * factorial(n - k))) }

Function to calculate the Poisson approximation

poisson_approximation <- function(n, p, k) { lambda <- n * p return(exp(-lambda) * lambda^k / factorial(k)) }

Main function

calculate_binomial_and_poisson <- function() { n <- as.integer(readline(“Enter value of n:”)) if (is.na(n) || n <= 0) { cat(“Error: ‘n’ must be a positive integer.”) return() }

p <- as.numeric(readline(“Enter value of p:”)) if (is.na(p) || p < 0 || p > 1) { cat(“Error: ‘p’ must be a number between 0 and 1.”) return() }

k <- as.integer(readline(“Enter value of k:”)) if (is.na(k) || k < 0 || k > n) { cat(“Error: ‘k’ must be a non-negative integer less than or equal to ‘n’.”) return() }

binomial <- binomial_coefficient(n, k) poisson <- poisson_approximation(n, p, k)

cat(“Exact value of b(n; p; k):”, binomial, “”) cat(“Poisson approximation:”, poisson, “”) }

Example usage

cat(“Example 1:”) calculate_binomial_and_poisson()

cat(“:”) calculate_binomial_and_poisson()

Example:

’’’ > calculate_binomial_and_poisson() Enter value of n: 10 Enter value of p: .3 Enter value of k: 3 Exact value of b(n; p; k): 120 Poisson approximation: 0.2240418 ’’’