For #4 if the Random instance weren’t “new”, then calling the nextInt() function would definitely have side effects, since the next integer would pull one away from the random stack.
However unlike the first three which will run within a consistent amount of time, #4 will take an unknown amount of time to run, so you can’t just collapse it and eliminate the loop.
For example a very simple race game where a participant moves a random number of steps each turn, we may want to time how long that race takes. We can’t just say that they will reach the end immediately. In fact technically we don’t know that they will ever finish the race… But that’s the halting problem and a whole other issue.










The final question of the test, written on he back of the paper, is “Don’t go on TV and tell everyone you aced a simple cognitive test”. That’s why he has to keep on taking them.