0% found this document useful (0 votes)
3 views3 pages

Sansv

Uploaded by

faraimutize18
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views3 pages

Sansv

Uploaded by

faraimutize18
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3

import random

class RandomNumberGenerator:

def __init__(self, num_digits, max_repeats=5):

self.num_digits = num_digits

self.max_repeats = max_repeats

self.generated_numbers = set()

def generate_number(self):

while True:

number = self._generate_random_number()

if number not in self.generated_numbers:

self.generated_numbers.add(number)

return number

def _generate_random_number(self):

while True:

digits = [random.randint(0, 9) for _ in range(self.num_digits)]

if self._is_valid_number(digits):

return int(''.join(map(str, digits)))

def _is_valid_number(self, digits):

# Check for ascending/descending order

if digits == sorted(digits) or digits == sorted(digits, reverse=True):

return False

# Check for repeated digits

digit_counts = {}

for digit in digits:


digit_counts[digit] = digit_counts.get(digit, 0) + 1

if digit_counts[digit] > self.max_repeats:

return False

return True

# Example usage

generator = RandomNumberGenerator(5)

for _ in range(10):

print(generator.generate_number())import random

class RandomNumberGenerator:

def __init__(self, num_digits, max_repeats=5):

self.num_digits = num_digits

self.max_repeats = max_repeats

self.generated_numbers = set()

def generate_number(self):

while True:

number = self._generate_random_number()

if number not in self.generated_numbers:

self.generated_numbers.add(number)

return number

def _generate_random_number(self):

while True:

digits = [random.randint(0, 9) for _ in range(self.num_digits)]

if self._is_valid_number(digits):

return int(''.join(map(str, digits)))


def _is_valid_number(self, digits):

# Check for ascending/descending order

if digits == sorted(digits) or digits == sorted(digits, reverse=True):

return False

# Check for repeated digits

digit_counts = {}

for digit in digits:

digit_counts[digit] = digit_counts.get(digit, 0) + 1

if digit_counts[digit] > self.max_repeats:

return False

return True

# Example usage

generator = RandomNumberGenerator(5)

for _ in range(10):

print(generator.generate_number())

You might also like