1|修改上题中的类,随机生成20个20~100之间的数字 2|这些数字两两配对形成二维坐标系的坐标,把这些坐标逐 行输出。
时间: 2024-09-25 20:11:04 浏览: 29
快速生成两两组合测试用例集算法 (2011年)
为了满足您的需求,我们可以修改之前的`RandomIntegerGenerator`类,使其能直接生成指定数量的不重复随机数,然后将它们两两配对形成二维坐标。这里是一个Python的解决方案:
```python
import random
from itertools import combinations
class UniqueRandomCoordinateGenerator:
def __init__(self, count=20, min_value=20, max_value=100):
self.min_value = min_value
self.max_value = max_value
self.generated_points = set()
def generate_unique_random_numbers(self):
while len(self.generated_points) < self.count:
num = random.randint(self.min_value, self.max_value)
if num not in self.generated_points:
self.generated_points.add(num)
return list(self.generated_points)
@property
def count(self):
return len(self.generated_points)
def get_coordinates(self):
points = self.generate_unique_random_numbers()
coordinates = [(x, y) for x, y in combinations(points, 2)]
return coordinates
# 示例使用
generator = UniqueRandomCoordinateGenerator()
coordinates = generator.get_coordinates()
for coord in coordinates:
print(coord)
```
上述代码首先生成了20个独特的随机数,然后使用组合函数将这些数字两两配对形成二维坐标。然后逐行打印这些坐标。
请注意,由于生成的是不重复的随机数,所以生成的坐标数量可能会少于20对,取决于原始随机数的数量。如果希望总是有20对坐标,您可能需要调整生成的独特数目的上限。
阅读全文