During page replacement in the operating system, belady may occur when the FIFO algorithm is used. Don't you want to implement it? Are you not curious at all? It took me n minutes to figure out the rule. Let me tell you what's the fucking belady. the program Below is an example of 100 such phenomena. N people have never learned java. considering this, I have completely written it in the C language style. It's awkward. Simulate three or four pages in the memory, and use an array to represent X [3], Y [4]. It is empty at the beginning, and the number of record interruptions is x_time and y_time, respectively, the program will automatically generate random numbers. When x_time <y_time is known, the number is output (I set it to 1 to 10 ). In this case, a sequence lower than 11 cannot produce belady, but it may be, but my computer ran for an hour without output. The rule can be summarized if the belady phenomenon occurs. The principle is the same. Squeeze out the first element of the current y [], and then find the squeezed element, in this way, the effect of "regret" is achieved, and then a key number is set, which is the last one, which is used to exceed y_time, like the effect of setting up a mine, then, let's squeeze out the mines in Y [] and find the key number in the last part. The x_time is later than y_time. I am not clear about it here. I am very much looking forward to discussing it with linuxer ............
10 6 9 4 4 4 3 9 3 8 10 2 10 9 10 8 10 1 8 10 2 2 9 1
9 10 10 7 10 2 8 10 2 10 7 6 10 9 7 5 6
6 2 8 4 10 10 3 7 4 10 4 8 4 3 10 7 9 7 9 7 6 10 9
5 10 7 10 4 7 4 3 2 6 4 3 7 4 3 1 6 7
4 2 4 2 5 4 9 2 5 10 8 8 4 7 6 1 9 5 6 1 8 6 7 7 1 8 4 8
2 7 1 7 3 1 1 9 1 5 5 5 10 7 4 8 3 6 8 10 10 8 9 8 4 3 5 5 9
5 4 5 6 9 9 8 7 6 9 4 6 8 9 7 7 4
10 7 5 1 4 3 7 8 3 3 3 7 3 5 7 3 5 2 7 8 5
5 2 5 6 3 6 10 3 3 4 10 7 8 10 4 8 4 8 6 10 3 6 5 6
5 2 6 5 5 4 10 3 9 4 2 3 4 9 5 3 1 9 2 5
6 3 10 6 10 9 9 2 2 7 8 6 6 6 5 5 5 6 5 4 3 6 4 1 7 3
10 7 3 5 10 7 7 10 9 10 2 7 5 9
3 7 9 9 6 3 7 4 3 4 7 10 7 10 7 9 4
9 6 7 4 2 10 2 3 5 4 4 2 8 10 4 4 4 5 4 3 4 7 5
7 2 9 7 3 5 3 2 9 8 2 4 9 1 4 8
2 1 7 6 1 1 6 1 10 2 6 1 10 5 2 3 8 6 2 10 8 6 10 5 8 6 9 7 5
9 3 6 6 3 1 1 1 1 9 3 1 2 2 2 9 3 6 1 2
6 7 1 6 7 5 10 10 3 6 2 7 6 3 6 10 3 6 5 7 10
2 6 6 6 1 1 5 1 2 6 7 2 4 6 7 8 7
1 3 3 1 5 9 6 10 3 2 9 3 3 3 2 2 1 3 2 2 2 5 9 1
8 2 10 6 7 10 5 8 6 7 2 7 6 6 3 3 4 2
1 7 2 2 1 9 5 5 4 6 6 2 8 9 4 8 3 8 9 6 6 8 9 3 6
3 6 7 1 7 9 4 3 5 4 1 4 10 10 3 1 8 1 8 3 1 8 9 1 6 8 8 7 9
8 6 1 5 10 8 5 2 5 10 10 4 5 1 10 2 4
8 3 4 3 10 3 2 4 10 5 4 10 5 8 5 1 5
5 1 2 3 6 7 3 6 7 1 10 6 7 8 6 7 5 7 4 8
3 3 6 8 7 10 9 3 7 9 7 10 2 7 7 8 10 4 2
1 2 10 1 4 5 6 5 4 4 10 3 9 4 8 1 3 4 8 9 4 5 8 9 7 9 3 5
2 1 3 7 2 3 1 10 2 1 3 6 10
8 1 1 3 10 7 3 1 10 3 7 5 1 5 5 9 7 5
4 10 5 7 1 10 5 8 10 5 2 8 4 8
8 8 6 8 5 8 8 8 10 7 8 4 2 5 5 5 5 4 6 8 4 1 7 6
6 4 2 1 3 4 4 4 3 4 9 4 2 9 2 2 1 3 9
7 8 10 3 9 5 1 10 9 5 7 9 5 8 3 7
8 7 2 9 3 8 3 7 6 9 8 4 8 7 7 7 7 5 3 4
6 1 9 8 3 10 8 1 2 1 4 9 10 7 6 9 10 8 9 1 10 7 8
7 8 10 10 5 2 10 8 5 10 10 7 8 8 10 1 10 2 7
1 8 1 10 10 5 1 10 1 8 8 5 4 1 8 10 6 10 4
4 4 4 9 6 9 4 8 4 9 3 4 1 1 9 1 8 3
1 2 1 1 9 3 4 7 7 5 8 6 5 6 8 9 8 3 5 8 4 1 3
2 9 6 7 9 8 9 9 5 6 6 6 1 6 4 5
10 1 8 6 7 5 9 8 6 7 3 4 6 7 10 6 10 7 1 1 7 1 5 10
6 5 2 10 6 5 4 6 5 5 1 1 7 4
6 6 5 5 7 1 10 7 2 8 5 2 7 6 1 8 9 6 1 3 3 6 3 6 1 10 3 8 3
9 8 3 3 9 10 6 6 7 9 8 6 7 6 8 6 4 7 2 3
8 4 10 9 8 4 9 3 8 1 4 2 3
9 3 1 10 9 10 3 5 9 9 4 3 8 5
3 2 4 10 2 2 2 8 4 4 5 2 5 3 10 5
10 1 1 1 10 2 10 10 3 8 1 2 7 2 1 1 1 3 4 4 4 7
7 4 5 2 7 4 7 6 7 8 4 2 2 6
3 6 7 8 2 6 7 4 6 7 3 2 4
5 3 3 1 1 2 4 10 4 1 2 2 2 2 2 2 2 6 6 10 7
3 4 5 8 8 8 1 5 5 1 1 2 4 3 5 6 2
2 7 5 10 4 8 9 7 2 4 9 7 7 1 9 3 7 1 6 1
2 8 2 4 1 9 4 7 10 3 6 6 3 7 3 10 8 10 7 10 4 9 8
4 9 5 8 4 5 9 7 9 6 7 7 10 7
7 4 1 10 4 4 2 8 2 6 3 2 8 9 9 2 8 1 9 8 5 9
3 7 4 7 9 9 9 3 7 3 5 7 5 7 3 7 1 9 5
8 9 1 7 6 9 6 1 5 9 4 1 3 5
2 8 4 6 7 2 2 4 4 4 4 7 7 6 4 9 4 1 6 5 9
9 10 6 3 9 10 4 4 4 10 9 10 2 6 2 4
6 10 4 7 6 10 1 1 6 10 1 4 7 1
1 3 8 3 9 10 1 1 4 1 5 4 10 1 2 10 1 8 7 2
1 4 6 7 3 4 3 6 10 4 2 6 2 7 10
6 8 3 4 7 10 9 9 3 4 10 9 1 10 9 7 8 1
7 8 4 5 6 3 9 3 10 3 5 2 10 5 5 9 10 7 9 10 8 1 8 7
1 4 5 10 10 9 4 10 9 5 9 7 4 5 2 9 9 7
1 9 1 5 3 1 9 3 1 8 8 1 9 8 4 8 7 8
9 10 1 9 7 9 10 6 9 10 2 6 5 6
4 6 9 5 8 2 6 1 8 8 2 9 8 2 3 9 5 9
8 5 3 5 5 1 9 2 6 8 6 6 6 2 8 2 2 2 9 3 2 5 2 1 5 1 3
6 2 9 7 6 2 5 6 3 2 7 3 7 5
9 5 9 1 10 10 7 9 8 3 3 2 8 1 1 4 2 1 2 1 8 2 1 8 3 6 8
4 5 6 2 3 4 10 4 4 4 1 4 10 8 4 10 4 9 1 8
6 3 8 7 2 2 2 2 4 2 6 9 4 7 8 6 9 2 6 3 9 10 2
7 2 8 10 10 3 2 4 4 4 2 3 6 3 8 5 3 2 6
4 1 7 10 2 9 10 9 5 10 2 8 10 3 2 7 3 8
7 8 10 5 10 1 9 6 5 1 3 5 1 7 8 3
6 8 2 8 9 2 4 10 6 3 4 10 5 4 5 7 10 2 5
9 1 10 7 8 6 1 1 7 8 1 8 2 8 7 8 10 1 2
2 8 2 1 7 10 3 6 4 9 5 6 9 5 4 9 10 4 5 3 4
10 6 2 4 1 8 9 4 1 4 2 4 1 4 7 10 7 2
8 9 6 4 7 1 6 4 5 6 2 4 9 5
1 3 2 8 6 5 1 4 1 9 3 4 6 3 3 7 5 3 6 10 3 6 5 10
9 8 3 1 2 8 3 2 7 8 5 5 3 9 7
2 9 8 6 6 5 6 1 5 6 5 1 5 4 3 5 1 3 9 5 1 7 4 9
3 3 8 1 6 6 2 8 1 9 8 3 1 10 9
6 1 5 2 1 6 1 9 6 9 8 1 3 9
10 2 10 3 8 5 6 8 3 8 4 3 9 8 4 10 4
10 2 3 9 1 2 3 4 2 6 3 9 4
6 5 2 8 9 4 5 2 2 2 9 9 4 7 9 4 4 10 10 7 8 7
1 3 4 8 9 6 9 5 8 9 10 8 9 8 6 2 10
9 10 10 1 8 4 8 1 10 1 2 10 2 1 4 6 4 2
3 7 3 1 6 2 8 9 2 6 2 9 4 2 4 4 6 2 3 8 4
1 7 10 3 4 8 3 9 3 9 8 9 9 4 4 5 4 3 6 4 1 5
7 2 7 5 6 6 3 4 9 8 6 3 1 9 6 9 3 4 6 3 2 5 4
4 1 8 4 9 7 10 9 8 9 4 8 5 9 6 4
3 7 9 6 3 7 7 10 3 10 7 1 5 5 10
3 3 4 2 1 2 3 4 4 4 4 4 3 7 9 4 5 7
2 3 9 6 6 5 5 5 9 6 7 9 4 6 8 7
4 9 7 9 6 3 3 9 4 6 6 9 10 6 1 9 6 7 9 4 6 1 7
Public class belady
{
Public static void main (string ARGs [])
{
Int num = 30;
Int m, n, k, in, I, j, x_time, y_time, Topp, total = 0;
Int [] x = {-1,-1,-1 };
Int [] Y = {-1,-1,-1,-1 };
Int [] TMP;
Boolean TF;
While (true)
{
TMP = new int [100];
K = num;
X_time = 0;
Y_time = 0;
Topp = 0;
For (I = 0; I <3; I ++)
X [I] =-1;
For (I = 0; I <4; I ++)
Y [I] =-1;
While (k --> 0)
{
In = (INT) (math. Random () * 10 + 1 );
TMP [Topp ++] = in;
TF = true;
For (I = 0; I <3; I ++)
{
If (X [I] <0)
{
X [I] = in;
X_time ++;
TF = false;
Break;
}
If (X [I] = in)
{
TF = false;
Break;
}
}
If (tf = true)
{
X [0] = x [1];
X [1] = x [2];
X [2] = in;
X_time ++;
}
TF = true;
For (I = 0; I <4; I ++)
{
If (Y [I] <0)
{
Y [I] = in;
Y_time ++;
TF = false;
Break;
}
If (Y [I] = in)
{
TF = false;
Break;
}
}
If (tf = true)
{
Y [0] = Y [1];
Y [1] = Y [2];
Y [2] = Y [3];
Y [3] = in;
Y_time ++;
}
If (x_time <y_time)
Break;
}
If (x_time <y_time)
{
Total ++;
For (I = 0; I <Topp; I ++)
System. Out. printf ("% d", TMP [I]);
System. Out. printf ("/N ");
If (total> 100)
Break;
}
}
}
}