#Exercise 2:打印坐标,使用Exercise 1中的类,随机生成20个数字,两两配对形 #成二维坐标系的坐标,把这些坐标组织起来,并打印输出
时间: 2023-09-25 10:10:13 浏览: 48
好的,下面是实现代码:
```python
import random
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def __str__(self):
return "({0}, {1})".format(self.x, self.y)
points = []
for i in range(20):
x = random.randint(1, 100)
y = random.randint(1, 100)
point = Point(x, y)
points.append(point)
for i in range(0, len(points), 2):
print("({0}, {1}), ({2}, {3})".format(points[i].x, points[i].y, points[i+1].x, points[i+1].y))
```
这个代码会随机生成20个数字,将它们组成二维坐标系中的点,然后打印出每两个点形成的坐标。例如,输出可能是:
```
(25, 6), (57, 31)
(69, 29), (45, 50)
(74, 38), (14, 60)
(67, 77), (62, 12)
(16, 84), (84, 33)
```
相关问题
Exercise 1: 创建一个随机整数生成类,使其可以指定一批生成的个数, 可以指定数值的范围,可以调整每批生成数字的个数。 Hint: import random,并使用其中的randint生成整数 Exercise 2: 打印坐标,使用 Exercise 1 中的类,随机生成 20 个 数字, 两两配对形成二维坐标系的坐标,把这些坐标组织起来,并打印输出
好的,我理解了你的要求。下面是代码实现:
Exercise 1:
```python
import random
class RandomIntGenerator:
def __init__(self, batch_size, value_range, num_per_batch):
self.batch_size = batch_size
self.value_range = value_range
self.num_per_batch = num_per_batch
def generate(self):
result = []
for i in range(self.batch_size):
batch = []
for j in range(self.num_per_batch):
num = random.randint(self.value_range[0], self.value_range[1])
batch.append(num)
result.append(batch)
return result
```
这个类可以根据输入参数产生指定个数的随机整数,每批生成的个数和数值范围也是可调的。
Exercise 2:
```python
generator = RandomIntGenerator(batch_size=10, value_range=[-100, 100], num_per_batch=2)
numbers = generator.generate()
coordinates = [(numbers[i][0], numbers[i][1]) for i in range(len(numbers))]
print(coordinates)
```
这里我们调用了 `RandomIntGenerator` 类生成了 10 组每组 2 个数的随机整数,然后将它们配对成坐标系中的坐标,并打印输出。
编写Java程序,如果文件Exercise17_02.dat不存在,则创建该文件。如果已经存在,则向文件追加数据。使用二进制I/O将100个随机数字生成的整数写入这个文件中
好的,以下是实现这个功能的Java代码:
```java
import java.io.*;
import java.util.Random;
public class Exercise17_02 {
public static void main(String[] args) {
final String FILE_NAME = "Exercise17_02.dat";
final int NUM_OF_INTS = 100;
// 生成随机数
Random rand = new Random();
int[] nums = new int[NUM_OF_INTS];
for (int i = 0; i < nums.length; i++) {
nums[i] = rand.nextInt();
}
try (DataOutputStream output = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(FILE_NAME, true)))) {
// 写入数据
for (int i = 0; i < nums.length; i++) {
output.writeInt(nums[i]);
}
System.out.println("成功写入" + NUM_OF_INTS + "个整数到文件" + FILE_NAME + "中!");
} catch (IOException ex) {
ex.printStackTrace();
}
}
}
```
这个程序首先定义了一个常量`FILE_NAME`表示要写入的文件名,以及一个常量`NUM_OF_INTS`表示要写入的随机整数个数。
程序随后使用`Random`类生成了`NUM_OF_INTS`个随机整数,并将它们存储在一个数组中。
接下来,程序使用`DataOutputStream`类将这些整数写入文件中。这里需要注意的是,我们要使用`BufferedOutputStream`类对`FileOutputStream`进行包装,以提高写入文件的效率。
此外,我们在`FileOutputStream`的构造函数中传入了一个`true`参数,表示以追加模式打开文件。这样,如果文件已经存在,我们就可以向文件中追加数据。
最后,程序输出一条消息,告诉我们写入了多少个整数到文件中。
运行这个程序后,如果文件`Exercise17_02.dat`不存在,程序会自动创建它,并向其中写入100个随机整数。如果文件已经存在,程序会向其中追加数据。