Java实现人员和宿舍的随机分配
时间: 2023-02-20 14:19:12 浏览: 64
你好!可以使用随机数生成器来实现人员和宿舍的随机分配。步骤如下:
1. 准备人员和宿舍的列表。
2. 使用Java中的随机数生成器(如`java.util.Random`)生成随机数,用于选择人员和宿舍的编号。
3. 将人员和宿舍根据随机选择的编号进行匹配。
4. 将分配结果保存到数据结构中,以便后续使用。
示例代码:
```
import java.util.Random;
public class RandomAllocator {
public static void main(String[] args) {
String[] persons = {"person1", "person2", "person3", "person4"};
String[] rooms = {"room1", "room2", "room3", "room4"};
Random random = new Random();
for (String person : persons) {
int roomIndex = random.nextInt(rooms.length);
System.out.println(person + " has been allocated to " + rooms[roomIndex]);
}
}
}
```
希望对您有所帮助!
相关问题
Java实现人员和宿舍的随机分配,并优先选择人数最少的进行分配
这是一个实现人员和宿舍随机分配的Java代码,并优先选择人数最少的宿舍分配:
```
import java.util.*;
public class AllocateRooms {
static class Room {
int number;
int capacity;
int currentOccupancy = 0;
Room(int number, int capacity) {
this.number = number;
this.capacity = capacity;
}
}
public static void main(String[] args) {
int numberOfRooms = 10;
int numberOfPersons = 30;
List<Room> rooms = new ArrayList<>();
for (int i = 0; i < numberOfRooms; i++) {
rooms.add(new Room(i + 1, (int) (Math.random() * 10) + 5));
}
List<Integer> persons = new ArrayList<>();
for (int i = 0; i < numberOfPersons; i++) {
persons.add(i + 1);
}
Collections.shuffle(persons);
Collections.sort(rooms, new Comparator<Room>() {
@Override
public int compare(Room r1, Room r2) {
return r1.currentOccupancy - r2.currentOccupancy;
}
});
for (Integer person : persons) {
for (Room room : rooms) {
if (room.currentOccupancy < room.capacity) {
System.out.println("Person " + person + " is allocated room number " + room.number);
room.currentOccupancy++;
break;
}
}
}
}
}
```
代码实现了宿舍和人员的随机分配,并优先选择人数最少的宿舍分配。
java实现随机分配
Java 可以通过使用 Math.random() 方法来实现随机分配。您可以使用该方法生成一个随机数,然后根据您的需要将其映射到所需的范围。
例如,假设您想在 1 到 10 之间随机分配一个整数,可以使用以下代码:
```
int randomNumber = (int)(Math.random() * 10) + 1;
```
这将生成一个介于 1 和 10 之间(包括 1 和 10)的随机整数。