I wonder if there is a problem related to the amount of variance accounted for by the difference.
When you say that there is a "considerable" advantage, you look at the Loss versus Gain data without considering the total.
In your simulation (which btw also works for other 1NT trump strengths and shapes), the proportion of the effect compared to the total number of tricks seems very small (below the .05 level).
It seems that rather than being a "considerable" effect, it is, in fact, a trivial effect that is likely swamped by the many other factors that come into play, including:
- Opposition bidding
- Quality of play by Declarer
- Quality of play by the opposition
Obviously, an advantage is better than a disadvantage.
But, with every upside comes the memory load needed to get it right. This "memory load" is part of the denominator that might wash away any advantage.
It is also noteworthy that to generate 1000 hands, the program had to generate more than 1 million hands.
Does this mean that the real denominator is several orders of magnitude higher in getting it right?
Modern 1NT warfare seems to have expanded well beyond the parameters that you have set (upgraded 14's and downgraded 18's) very misshapen hands (as those of us that play against robots know).
I ran your code with different HCP parameters and the results were rather similar:
N1NT = shape(north, any 4333 + any 4423 + any 5332) and hcp(north)>=7 and hcp(north)<=10
Frequency of spades tricks:
Low 434
8 195
9 171
10 115
11 58
12 21
13 6
Frequency of extra spades tricks due to transfer:
-2 0
-1 27
0 945
1 27
2 1
Generated 36760 hands
Produced 1000 hands
Initial random seed 1618393724
Time needed 74.057 sec
N1NT = shape(north, any 4333 + any 4423 + any 5332) and hcp(north)>=14 and hcp(north)<=18
Frequency of spades tricks:
Low 112
8 162
9 186
10 222
11 201
12 104
13 13
Frequency of extra spades tricks due to transfer:
Low 1
-2 0
-1 26
0 929
1 44
2 0
Generated 71060 hands
Produced 1000 hands
Initial random seed 1618393854
Time needed 59.343 sec
N1NT = shape(north, any 4333 + any 4423 + any 5332) and hcp(north)>=11 and hcp(north)<=14
Frequency of spades tricks:
Low 234
8 187
9 220
10 177
11 122
12 47
13 13
Frequency of extra spades tricks due to transfer:
-2 0
-1 27
0 942
1 31
2 0
Generated 44029 hands
Produced 1000 hands
Initial random seed 1618393419
Time needed 65.772 sec