The problem is called a paradox because two analyses that both sound intuitively logical give conflicting answers to the question of what choice maximizes the player's payout. The first analysis argues that, regardless of what prediction the Predictor has made, taking both boxes yields more money.
If you don't find this convincing, that's the point. Half the people who read this think one answer is obviously right, and the other half think the other is obviously right.
What I meant is that based on the arguments I gave, I do not believe the other logic to be sound.
If The Predictor suspects you will choose just box A, it'll put 1 million in box B and 1 thousand in box A, if it suspects you will take both A and B, it will put nothing anything in box B and 1 thousand in box A.
So now you standing in front of the two transparent boxes. You see that there is $1 million in box B, yet you still take just box A?
If you were so inclined to take Box B's million, Omega would never have put that million in the first place.
The only way for Omega to put that million there is if you weren't inclined to take Box B - despite the million being completely visible to you - in which case you lose anyway.
The situation where Omega gives you the million, and you take it, just never comes up. Can't fool it.
The lack of information of box B, is exactly what makes the other case different. Then you need to only rely on thinking and you do not know if box B has a million dollars till you open it. If you risk taking two boxes, you will lose it.
---
Let me give another example to make the original scenario transparent.
Imagine I will write a function "decide(double content_of_A)" to decide whether B or both will be opened, given content of A.
Imagine you can examine the function beforehand, and you are super-intelligent compared to me, so any attempt to obfuscate the code in my part will be utterly useless and easily seen through.
And you are honest - in putting the $1M in box B if your analysis suggests that the decision function will only take B.
Note that my function gets called after you have placed the money, just as in the original scenario.
Would I not write the function to choose B? I would.