1. Harout will never use Jack without some added assumption. There is no number of gold coins large enough. To see why, consider the following inductive argument.

From the warm-up, we know that Harout would not use Jack for his last one, two, three, or four coins. Suppose Harout would not use Jack for his last k or fewer coins but will for k+1 coins. Sending one coin is pointless because Jack will take it no matter what. Sending all k+1 coins gives Jack no incentive to be honest.

Suppose Harout therefore sends some number m in between: 1 < m < k+1. Harout can imagine Jack reasoning as follows: "Even if I'm honest, Harout will use the insured carrier the next time because the number remaining will be less than k. So I might as well steal these m coins."

2. For 10 coins under the trust-until-cheated protocol, Harout will prepare packets of size 4, then 3, then 2, then 1. Assuming Jack is honest every time, Harout will see 6 coins get to Zurich with four going to the smuggler. It's not in Jack's interest to cheat at any time because he'll never get more than 4 by doing so.

3. For 20 coins, Harout will set up lots of size 5, 5, 4, 3, 2 and 1. The smuggler will receive 6 coins if he is honest and no more in any other case.

4. For 50 coins, Harout will set up lots of 5, 9, 8, 7, 6, 5, 4, 3, 2 and 1. The smuggler Jack will get 10 of these coins. Dishonesty will not help him.

5. Assume that Jack would prefer to be dishonest (when profits are equal) in order to exact revenge on Harout and Harout knows this. For 10 coins, the lots should hold 3, 3, 2 and 2. Harout will get 5 to Zurich and Jack will get 5. For 20 coins, the lots will contain 4, 5, 4, 3, 2 and 2. The smuggler will get 7 and Harout will get 13 delivered to Zurich. For 50 coins, the lots will hold 4, 9, 8, 7, 6, 5, 4, 3, 2 and 2. The smuggler will receive 11 and 39 will be delivered to Zurich.

Here is how to calculate the lot sizes when Jack prefers to be honest. (I had a complex method involving dynamic programming but Peter Carpenter of Gwent, Wales showed me a much more elegant one.) The last lot Harout sends should have one coin. If he sends more coins at the end, Jack will certainly steal them. The next to last lot should have 2, then 3 and so on. This tells us how many to send if Harout's initial coin collection is of size 1 coin, 3 coins, 6, 10, 15, 21, 28, 36 ... coins.

These "perfect coin numbers" are derived from the series 1, 1+2, 1+2+3, 1+2+3+4, .... If Harout has 1+2+3+...+n coins initially, then he divides them into lots of size n, n-1, n-2, ..., and 1 and sends them in descending order. If Harout's initial collection is not a perfect number of coins, then his first lot is the number that will reduce his collection size to the next lower perfect coin number. For example, if he has 31 coins, his first lot will consist of 3 coins (reducing the remainder to 28, which is 1+2+3+...+7).

If Jack prefers to be dishonest when profits are equal, then the argument becomes somewhat more complex. Below I sketch a solution that relies on the techniques called dynamic programming and recursion. If you find the going to be too rough, then you can get something very close by following puzzle enthusiast Peter Carpenter's approach: Given n coins, divide the lots based on the Jack-the-good-guy model for n-1 coins and then send 1 coin at the end. The following approach is just slightly better:

Let the function Merchant(n) = the number that the merchant will retain from the last n coins if the smuggler has been honest until that point and the merchant plays optimally.

The function Smuggler(n) = the number that the smuggler will get from the last n coins assuming the merchant follows the merchant's optimal strategy.

The function Try(n,k) determines what will happen when k are sent from the remaining n. If the smuggler will make at least as much from stealing the k as from taking a commission of 1 plus whatever the smuggler would earn from the merchant's strategy for n-k, then the smuggler will steal. Otherwise he won't.

We can define the value of Try(n,k) thusly:
If k >= [1 + Smuggler(n-k)], then the smuggler will steal the k. The merchant will deliver (n-k)/2 more to Zurich than he has already received and the smuggler will receive the k he has stolen in addition to whatever he has received as commission.

Otherwise, the smuggler won't steal. The merchant will then deliver k-1 on the current trip plus the value of Merchant(n-k). The smuggler will gain 1 for this trip plus the value of Smuggler(n-k).

We can set Merchant(0) = 0 and Smuggler(0) = 0, and also Merchant(1) = 0 and Smuggler(1) = 1 (because Harout will send his last coin with Jack if Jack has been honest up to that point).

Then we can build upwards from there. Suppose we have computed Merchant and Smuggler for inputs up through n-1. To figure out what the merchant should do when he has n coins and the smuggler has been honest up to that point, imagine that the merchant evaluates Try(n,k) for every k from 1 to n-1. The merchant then chooses the value of k that is best for him and chooses that as his next lot.

That reasoning generates an optimal division of lots. For example, with 12 coins initially, the lots would be 4, 3, 2, 2, 1. Jack will deliver the 4, the 3, and the first 2, but won't deliver the second 2, so Harout will send the last value by insured carrier.