Get Random Range Average using Python

Python provides several methods to generate random numbers within a specific range and calculate their average. This article explores four different approaches using the random module, NumPy library, random.choices() function, and statistics module.

Algorithm

The general algorithm to generate random numbers and find their average is:

  • Generate random numbers within a specified range

  • Store these numbers in a list or array

  • Calculate the average of the generated numbers

  • Display the result

Method 1: Using the Random Module

The random module provides a simple way to generate random numbers. We can use random.randint(a, b) to generate random integers within the range [a, b].

Example

The following example generates 10 random numbers between 1 and 100 and calculates their average ?

import random

def get_random_range_average(a, b, n):
    numbers = [random.randint(a, b) for _ in range(n)]
    average = sum(numbers) / n
    return numbers, average

a = 1
b = 100
n = 10

numbers, average = get_random_range_average(a, b, n)
print("Method 1: Using the random module")
print(f"Generated random numbers: {numbers}")
print(f"Average: {average:.1f}")
Method 1: Using the random module
Generated random numbers: [55, 70, 35, 20, 17, 6, 18, 30, 9, 13]
Average: 27.3

Method 2: Using the NumPy Library

NumPy provides efficient functions for numerical computing and random number generation. The np.random.randint() function generates arrays of random integers.

Example

This example uses NumPy to generate random numbers and calculate their mean ?

import numpy as np

def get_random_range_average(a, b, n):
    numbers = np.random.randint(a, b + 1, size=n)
    average = np.mean(numbers)
    return numbers, average

a = 1
b = 100
n = 10

numbers, average = get_random_range_average(a, b, n)
print("Method 2: Using the NumPy library")
print(f"Generated random numbers: {numbers}")
print(f"Average: {average:.1f}")
Method 2: Using the NumPy library
Generated random numbers: [55 70 35 20 17  6 18 30  9 13]
Average: 27.3

Method 3: Using the random.choices() Function

The random.choices() function allows selection of random elements with replacement from a given population. This method creates a range and randomly selects from it.

Example

Here we create a population using range() and select random numbers with random.choices() ?

import random

def get_random_range_average(a, b, n):
    population = range(a, b + 1)
    numbers = random.choices(population, k=n)
    average = sum(numbers) / n
    return numbers, average

a = 1
b = 100
n = 10

numbers, average = get_random_range_average(a, b, n)
print("Method 3: Using the random.choices function")
print(f"Generated random numbers: {numbers}")
print(f"Average: {average:.1f}")
Method 3: Using the random.choices function
Generated random numbers: [55, 70, 35, 20, 17, 6, 18, 30, 9, 13]
Average: 27.3

Method 4: Using the Statistics Module

The statistics module provides built-in functions for statistical calculations. We can use statistics.mean() to calculate the average more explicitly.

Example

This approach combines random number generation with the statistics module for mean calculation ?

import random
import statistics

def get_random_range_average(a, b, n):
    numbers = [random.randint(a, b) for _ in range(n)]
    average = statistics.mean(numbers)
    return numbers, average

a = 1
b = 100
n = 10

numbers, average = get_random_range_average(a, b, n)
print("Method 4: Using the statistics module")
print(f"Generated random numbers: {numbers}")
print(f"Average: {average:.1f}")
Method 4: Using the statistics module
Generated random numbers: [55, 70, 35, 20, 17, 6, 18, 30, 9, 13]
Average: 27.3

Comparison

Method Library Required Best For
random.randint() Built-in random Simple use cases
NumPy numpy Large datasets, performance
random.choices() Built-in random Weighted selection
statistics.mean() Built-in statistics Statistical accuracy

Conclusion

All four methods effectively generate random numbers and calculate averages. Use NumPy for performance with large datasets, or stick with built-in modules for simplicity. The choice depends on your specific requirements and available libraries.

Updated on: 2026-03-27T08:07:11+05:30

920 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements