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())