I'm not sure how much longer I'll be allowed to go on before someone moderates this out of existence, but here are some simulation results.
Conditons:
- South has a 1
♣ opening, playing four-card majors and a strong notrump
- West has a 1
♦ overcall
- East has 3+ diamonds (ie he will probably raise)
The frequencies of the different major-suit fits were:
East has [space] [space] [space] [space] [space] [space] [space]3 diamonds [space] 4+ diamonds
5-4 [space] [space] [space] [space] [space] [space] [space] [space] [space] [space] [space] [space] [space] [space] [space] 7.2 [space] [space] [space] [space] [space]14.8
5-3 [space] [space] [space] [space] [space] [space] [space] [space] [space] [space] [space] [space] [space] [space] [space]21.9 [space] [space] [space] [space] [space]27.0
4-4 [space] [space] [space] [space] [space] [space] [space] [space] [space] [space] [space] [space] [space] [space] [space]12.1 [space] [space] [space] [space] [space]14.8
No fit, std methods ambiguous * [space] 8.8 [space] [space] [space] [space] [space] 6.3
No fit, no ambiguity [space] [space] [space] [space] [space] [space] 50.1 [space] [space] [space] [space] [space]37.2
* These are deals where responder has one 4-card major and opener has exactly three of those. In standard methods, this leads to ambiguity about whether there is a fit or not. Playing that 1M promises five, this ambiguity does not exist.
These figures suggest that playing 1M promises five gains over standard methods several times more often than it loses.
I realise that the benefit of finding a 4-4 fit is greater - if our 5-3 fit gets preempted, it will be easier to find than if our 4-4 fit gets prempted. Still, it seems to me that playing 1M as promising five does have merit.
Note that this applies specifically in a four-card major, strong notrump system. I wouldn't consider it otherwise.
My code is below.
source format/none
# Counters
set fit_54 0
set fit_53 0
set fit_44 0
set fit_none_std_ambig 0
set fit_none_unambig 0
main {
[space]if {! [4cm_1c south] || ! [1d_overcall west]} {
[space] [space] [space]reject
[space] [space]}
[space]# East has 4+ diamonds
[space]if {[diamonds east] < 4} {
[space] [space] [space]reject
[space] [space]}
[space]
[space]set hn [hearts north]
[space]set sn [spades north]
[space]set hs [hearts south]
[space]set ss [spades south]
[space]if {($hn >= 5 && $hs >= 4) || ($sn >= 5 && $ss >= 4)} {
[space] [space]incr fit_54
[space] [space]accept
[space] [space]}
[space]if {($hn >= 5 && $hs == 3) || ($sn >= 5 && $ss == 3)} {
[space] [space]incr fit_53
[space] [space]accept
[space] [space]}
[space]if {($hn == 4 && $hs == 4) || ($sn == 4 && $ss == 4)} {
[space] [space]incr fit_44
[space] [space]accept
[space] [space]}
[space]if {($hn == 4 && $sn < 4 && $hs == 3) || ($sn == 4 && $hn < 4 && $ss == 3)} {
[space] [space]incr fit_none_std_ambig
[space] [space]accept
[space] [space]}
[space]incr fit_none_unambig
[space]accept
}
deal_finished {
[space]puts " 5-4 [space] [space] [space] [space] [space] [space] [space]$fit_54"
[space]puts " 5-3 [space] [space] [space] [space] [space] [space] [space]$fit_53"
[space]puts " 4-4 [space] [space] [space] [space] [space] [space] [space]$fit_44"
[space]puts " No fit, std methods ambiguous [space]$fit_none_std_ambig"
[space]puts " No fit, no ambiguity [space] $fit_none_unambig"
}
proc 4cm_1c {hand} {
[space]set hcp [hcp $hand]
[space]set c [clubs $hand]
[space]set d [diamonds $hand]
[space]set h [hearts $hand]
[space]set s [spades $hand]
[space]set hcp_adj [expr $hcp + $c - 4]
[space]# clubs at least 4
[space]if {$c < 4} {
[space] [space]return 0
[space] [space]}
[space]
[space]# longest suit first; majors before minors
[space]if {$s >= $c || $h >= $c || $d > $c} {
[space] [space]return 0
[space] [space]}
[space]# 1C with 4-4 minors; 1D with 5-5 [space] [space] [space]
[space]if {$d == $c && $d > 4} {
[space] [space]return 0
[space] [space]}
[space] [space]
[space]# balanced 12-14 or 18-19, adding 1 for a 5-card suit
[space]if {[balanced $hand]} {
[space] [space]if {$hcp_adj < 12 || ($hcp_adj > 14 && $hcp_adj < 18) || $hcp_adj > 19} {
[space] [space] [space]return 0
[space] [space] [space]}
[space] [space]
[space] [space]return 1
[space] [space]}
[space]# unbalanced, approximately in the right range
[space]if {$hcp_adj < 12 || $hcp_adj > 21} {
[space] [space]return 0
[space] [space]}
[space] [space]
[space]return 1
[space]}
proc 1d_overcall {hand} {
[space]set hcp [hcp $hand]
[space]set c [clubs $hand]
[space]set d [diamonds $hand]
[space]set h [hearts $hand]
[space]set s [spades $hand]
[space]# diamonds at least 5
[space]if {$d < 5} {
[space] [space]return 0
[space] [space]}
[space]
[space]# longest suit first; majors before minors
[space]if {$s >= $d || $h >= $d || $c > $d} {
[space] [space]return 0
[space] [space]}
[space] [space]
[space]# not a takeout double
[space]if {$hcp > 10 && ($s >2 && $h > 2)} {
[space] [space]return 0
[space] [space]}
[space]# in the right range
[space]if {$hcp < 8 || $hcp > 18} {
[space] [space]return 0
[space] [space]}
[space]# not strong balanced
[space]if {[balanced $hand] && $hcp > 14} {
[space] [space]return 0
[space] [space]}
[space]return 1
[space]}