Bird
Raised Fist0
SciPydata~5 mins

Uniform distribution in SciPy - Time & Space Complexity

Choose your learning style10 modes available
Time Complexity: Uniform distribution
O(n)
Understanding Time Complexity

We want to understand how the time to generate uniform random numbers grows as we ask for more numbers.

How does the cost change when we increase the amount of data we create?

Scenario Under Consideration

Analyze the time complexity of the following code snippet.


import numpy as np
from scipy.stats import uniform

# Generate 1D array of n uniform random numbers between 0 and 1
n = 1000
samples = uniform.rvs(size=n)
    

This code generates n random numbers from a uniform distribution between 0 and 1.

Identify Repeating Operations

Identify the loops, recursion, array traversals that repeat.

  • Primary operation: Generating each random number independently.
  • How many times: Exactly n times, once per sample.
How Execution Grows With Input

Each additional number requires one more generation step, so the total work grows directly with n.

Input Size (n)Approx. Operations
1010 random number generations
100100 random number generations
10001000 random number generations

Pattern observation: Doubling n doubles the work needed.

Final Time Complexity

Time Complexity: O(n)

This means the time to generate samples grows in a straight line with the number of samples requested.

Common Mistake

[X] Wrong: "Generating multiple uniform samples is constant time because it's just one function call."

[OK] Correct: Each sample requires work, so more samples mean more time, not the same time.

Interview Connect

Understanding how data generation scales helps you explain performance when working with simulations or sampling in real projects.

Self-Check

"What if we generated a 2D array of samples instead of 1D? How would the time complexity change?"

Practice

(1/5)
1. What does the loc parameter represent in the scipy.stats.uniform distribution?
easy
A. The starting point (minimum value) of the uniform distribution range
B. The width (length) of the uniform distribution range
C. The mean of the uniform distribution
D. The variance of the uniform distribution

Solution

  1. Step 1: Understand the parameters of uniform distribution

    The uniform distribution in scipy uses loc as the starting point of the range and scale as the length of the range.
  2. Step 2: Identify the role of loc

    The loc parameter sets the minimum value where the uniform distribution starts.
  3. Final Answer:

    The starting point (minimum value) of the uniform distribution range -> Option A
  4. Quick Check:

    loc = start value [OK]
Hint: Remember: loc = start, scale = length [OK]
Common Mistakes:
  • Confusing loc with scale
  • Thinking loc is the mean
  • Mixing loc with variance
2. Which of the following is the correct way to create a uniform distribution from 5 to 15 using scipy?
easy
A. uniform(loc=10, scale=5)
B. uniform(loc=5, scale=15)
C. uniform(loc=5, scale=10)
D. uniform(loc=0, scale=10)

Solution

  1. Step 1: Calculate scale from range

    The range is from 5 to 15, so the length is 15 - 5 = 10. This is the scale.
  2. Step 2: Set loc and scale correctly

    Set loc=5 (start) and scale=10 (length) to cover 5 to 15.
  3. Final Answer:

    uniform(loc=5, scale=10) -> Option C
  4. Quick Check:

    loc=5, scale=15-5=10 [OK]
Hint: Scale = end - start, loc = start [OK]
Common Mistakes:
  • Swapping loc and scale values
  • Using scale as the end value
  • Setting loc to zero incorrectly
3. What is the output of this code?
from scipy.stats import uniform
rv = uniform(loc=2, scale=3)
print(round(rv.pdf(3), 2))
medium
A. 0.33
B. 0.20
C. 0.50
D. 0.00

Solution

  1. Step 1: Understand PDF of uniform distribution

    PDF is constant inside the range and equals 1/scale. Here, scale=3, so PDF = 1/3 ≈ 0.3333.
  2. Step 2: Check if x=3 is inside the range

    Range is from loc=2 to 2+3=5. Since 3 is inside, PDF at 3 is 1/3 ≈ 0.33.
  3. Final Answer:

    0.33 -> Option A
  4. Quick Check:

    PDF = 1/scale = 1/3 = 0.33 [OK]
Hint: PDF inside range = 1/scale [OK]
Common Mistakes:
  • Calculating PDF as zero inside range
  • Using loc instead of scale for PDF
  • Rounding errors without checking range
4. Identify the error in this code snippet:
from scipy.stats import uniform
rv = uniform(loc=1, scale=4)
prob = rv.cdf(6)
print(prob)
medium
A. The scale should be 5 to cover up to 6
B. No error; code runs correctly
C. The loc parameter must be zero
D. The cdf method does not exist for uniform

Solution

  1. Step 1: Check parameters and range

    loc=1 and scale=4 means range is from 1 to 5 (1+4=5).
  2. Step 2: Evaluate cdf at 6

    6 is outside the range (greater than 5), so cdf(6) should return 1 (full probability).
  3. Step 3: Confirm method existence and output

    The cdf method exists for uniform and returns valid output even outside range.
  4. Final Answer:

    No error; code runs correctly -> Option B
  5. Quick Check:

    cdf exists and returns 1 for x > loc+scale [OK]
Hint: CDF returns 1 for x beyond range max [OK]
Common Mistakes:
  • Thinking scale must cover queried x
  • Assuming cdf method is missing
  • Believing loc must be zero
5. You want to model a uniform distribution for daily temperatures between 10°C and 20°C. Which code correctly calculates the probability that temperature is less than 15°C?
hard
A. rv = uniform(loc=10, scale=5) prob = rv.cdf(15)
B. rv = uniform(loc=10, scale=20) prob = rv.cdf(15)
C. rv = uniform(loc=0, scale=10) prob = rv.cdf(15)
D. rv = uniform(loc=10, scale=10) prob = rv.cdf(15)

Solution

  1. Step 1: Set correct loc and scale for temperature range

    Range is 10 to 20, so loc=10 and scale=20-10=10.
  2. Step 2: Calculate CDF at 15

    CDF at 15 is (15 - loc)/scale = (15-10)/10 = 0.5, which is the probability temperature is less than 15.
  3. Final Answer:

    rv = uniform(loc=10, scale=10) prob = rv.cdf(15) -> Option D
  4. Quick Check:

    prob = (15-10)/10 = 0.5 [OK]
Hint: CDF = (x - loc) / scale inside range [OK]
Common Mistakes:
  • Using wrong scale length
  • Setting loc to zero incorrectly
  • Calculating CDF outside range without adjustment
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard