Assumption: Now there are 100 candidates whose numbers are 1-100

The examination room is now 10 * 10 (10 people per row)

Now it is required that the seat number is randomly assigned, not fixed from row 1 to 100

I have already figured it out, but the efficiency is relatively low, and the above is just an example, is there any other good method, please ask!

1. Fill 1->100 into the linked list data structure R such as arraylist

2. Let N=100,

3. Take new Random().Next(1, N) to get the result n

4. Remove the element r at position n in R, the element r is the assigned position,

5. In the matrix corresponding to r to 10*10, get the assigned position

6.N--

7. Repeat step 2 until N=0, that is, all positions are allocated

correct:

. Take new Random().Next(1, N) to get the result n

Is there a high probability that the result n obtained in this step will appear the same?

-----------------

Very high,

For example, if you get 1 for the first time, the first element of the arraylist will be removed, which is 1, and the seat number is 1, 1.

The second time it gets 1 again, the first element of the arraylist is removed, namely 2, the seat number is 2, 1

such....

← Previous Post

Efficient file data storage and custody system

Efficient file data storage and custody system

Next Post →

How can I maintain a beautiful mood?

How can I maintain a beautiful mood?

statement：《 Randomly assign the best position, efficient algorithm 》If the content offends you, send it to [email protected] and I will deal with it as soon as possible.