Dataford
Interview QuestionsInterview GuidesExperiencesMock InterviewsPricing
Get started
Random Number Generation
00:00
5 left

Random Number Generation

EasyPython

Problem

For a ValueLabs coding assessment, implement a deterministic pseudorandom number generator without using Python's random module. Use a linear congruential generator to produce a sequence of integers within an inclusive range.

The generator must update its state using:

state = (1664525 * state + 1013904223) % 2^32

Map each updated state into the requested range using the remainder operator.

Formal Specification

Implement generate_random_numbers(seed, count, lower, upper), where:

  1. seed is the initial non-negative integer state.
  2. count is the number of values to generate.
  3. lower and upper define an inclusive output range.
  4. Return a list containing exactly count integers.
  5. Each returned value must satisfy lower <= value <= upper.
  6. The same inputs must always produce the same output.

For each value, first update the state, then calculate lower + state % (upper - lower + 1).

Constraints

  • 0 <= seed < 2^32
  • 0 <= count <= 10^4
  • -10^9 <= lower <= upper <= 10^9
  • Use integer arithmetic only
  • Do not use Python's random module

Function Signature

def generate_random_numbers(seed, count, lower, upper):
Interviewer

Your question is Random Number Generation. Start with the requirements in the Question tab.

Run and submit as often as you like. When you're ready, talk me through your approach or go straight to the code.

You need to log in / sign up to run or submit.
CodePython 3
You need to log in / sign up to run or submit.Ln 2
Run your code to see test output here.