25-cxsj-final/backend/problems/interval_scheduling/generator.py

18 lines
625 B
Python

import random
from typing import List, Tuple
def generate_interval_scheduling_case(size: int = 10, min_time: int = 0, max_time: int = 100) -> List[Tuple[int, int]]:
"""
Generates a list of random intervals (start, end).
"""
intervals = []
for _ in range(size):
start = random.randint(min_time, max_time - 1)
# Ensure end > start
duration = random.randint(1, (max_time - start) // 2 + 1 if (max_time - start) > 2 else 1)
end = min(start + duration, max_time)
if end <= start:
end = start + 1
intervals.append((start, end))
return intervals