Jump to content

BebopKid

Full Members
  • Posts

    230
  • Joined

  • Last visited

About BebopKid

  • Birthday 08/12/1973

Previous Fields

  • Preferred Systems
    SAYC,2/1

Contact Methods

  • Website URL
    http://
  • ICQ
    0
  • Skype
    TheBebopKid

Profile Information

  • Gender
    Male
  • Location
    Little Rock, Arkansas, USA

BebopKid's Achievements

(4/13)

0

Reputation

  1. I know I can watch the tournament status for tables that haven't finished the round, but when the next round starts, what is the easiest way to find all the ones that didn't finish so I can adjust them? Thanks, BLW
  2. Not my discovery. It is already known by many. I'm only trying to enlighten others and help spread knowledge.
  3. Since you are the mathematical type, I suggest you try proving (mathematically, that is) that this config generates exactly the hands you are looking for (and with the same chances). Instead of 13 cards, you can try with a lesser number of cards in a suit and try it out by hand and see if it matches. Great idea! I'll post that tonight if I have time
  4. Please do run a simulation and show results that match your hypothesis. I've already gone over the mathematics of it. Probability says that 6-3-2-2 occurs more often than 6-3-3-1.
  5. I hope I didn't imply, by the way, that this was an original idea of mine. This has been taught many times by many people before I started playing bridge. A bridge instructor at our local club, also brought this back with him from the Instructor Training given at the ACBL in Nashville this year. So please don't give me credit for proving something that someone else came up with.
  6. If you read my first post, I asked for no insults. If you have something positive or constructive to comment, please do so. I am happy for everyone that can keep quoting the same things to me. Please test and results from your trials as I have done. Here are the results from Richard Pavlicek's deal generator. Okay, using Richard Pavlicek's deal generator with this RPD config D 65000:1000000000 123WS=6 123WS=3 01234WS=4 0123WS=2 This finds hands that meet the following requirements 1. any deal with a hand having a 6 card spade suit 2. any deal with a hand having a 3 card spade suit from set (1) 3. exclude any deal with a hand having a 4 card spade suit from set (2) 4. exclude any deal with a hand having a 2 card spade suit from set (3) If you do not believe this is not an accurate test, please post the configuration file for a test you believe to be accurate. Here are the results: 308912 hands with a 6 card spade suit in any hand 195462 hands with a 6-3 spade fit between any 2 hands 170625 hands without a 6-3-4-0 spade distribution -> 24837 hand with a 6-3-4-0 spade distribution 65000 hands without a 6-3-2-2 spade distribution -> 105625 hands with a 6-3-2-2 spade distribution -> 65000 hands with a 6-3-3-1 spade distribution So: 54.04% are 2-2 split 33.25% are 3-1 split 12.71% are 4-0 split
  7. Sorry, I've been off line for a while. Plus I was sick, and apparently not using the same algorithm for checking the BigDeal numbers that I used for my own numbers where I did check all the hands/suits. Teaches me not to rush Here are the results I got from the BigDeal numbers by looking through all the dealt hands for 5-4 distribution and 6-3 distribution. 9 card-fit with 5-4 had this distribution for the other hands: 3-1 split 52.2% 2-2 split 42.6% 4-0 split 5.1% I used 64452 hands for this analysis. 9 card-fit with 6-3 had this distribution for the other hands: 3-1 split 33.3% 2-2 split 54.3% 4-0 split 12.4% I used 26854 hands for this analysis. This is tending to back up what I learned from my teachers, that 3-1 split occurs less often than 2-2 split with a 6-3 declarer combination. I am going to look for Richard Pavlicek's deal generator as suggested by jdeegan. I will post the results here when I'm done. Also I have learned quite a bit through research this week. I have implemented a Mersenne Twister for random number in my own deal generator. I am planning to write a very usable graphical interface with lots of export options and post it on my web site for people to use. But I'm mostly doing it for the fun of it. (What a geek!) It will be a while before it's ready as it is a pretty big endeavor. I appreciate all the comments.
  8. When using programs like BigDeal I expected the hands to follow the probabilities published for hand and suit probabilities. See Hand pattern probabilities as an example. I used BigDealX to generate 65000 deals, which is of course 260000 NS suits to look at. 65000 * 4 Of those suits, 2422 were 6322 in some combination of NS 63 EW 22. That is less than 0.931%. From the Hand Pattern Probabilities, the number should be 5.64% for totally random deals. Every suit combination and hand pattern total has significant error from the 65000 deal sample. Could someone who understands this please explain it to me? I have received much flack for thinking that random deals should tend toward the hand pattern probabilities with large samples. If they don't, then how do I make sense of the probabilities. Are the probabilities useless? Before using other people's generators, I wrote my own with a random shuffle algorithm that mimics a human card shuffle. Any time I generate 65000 deals with my generator, it conforms within close proximity to the probabilities. Because of that, I have been told that my generator is not random. I am completely confused at this point. Please only respond if you want to help me, not insult me. I have had enough of that.
  9. Try it out. It works. It comes up with the expected results. Anything else?
  10. Excel macro with sheets in the workbook: "Hands", "Distributions", and "Summary" Dim Deck(52) As Integer, DeckS(52) As Integer ' DeckS has the hands sorted by suit and rank, so that the Deck remains the unsorted master to retain random distribution ' Face value is card mod 13 ' Suit value is int(card / 13) ' Examples: 51 is Ace of Spades, 3 is 4 of Clubs Dim Faces(13) As String ' Faces contains a map to card ranks Sub start_deck() Dim i As Integer For i = 0 To 51 Deck(i) = i Next i = 0 Faces(i) = "2" i = i + 1 Faces(i) = "3" i = i + 1 Faces(i) = "4" i = i + 1 Faces(i) = "5" i = i + 1 Faces(i) = "6" i = i + 1 Faces(i) = "7" i = i + 1 Faces(i) = "8" i = i + 1 Faces(i) = "9" i = i + 1 Faces(i) = "T" i = i + 1 Faces(i) = "J" i = i + 1 Faces(i) = "Q" i = i + 1 Faces(i) = "K" i = i + 1 Faces(i) = "A" End Sub Sub shuffle() ' Perform a realistic shuffle Dim Deck1(26) As Integer, Deck2(26) As Integer ' Two half decks of equal size to be shuffled Dim i As Integer, j As Integer, k As Integer Dim total As Integer, flex As Integer Dim i1 As Integer, i2 As Integer, i3 As Integer Dim pick As Integer total = 4 ' number of shuffles flex = 4 ' maximum cards from each half deck to be shuffled per iteration For j = 1 To total ' Make two half decks For i = 0 To 25 Deck1(i) = Deck(i) Deck2(i) = Deck(i + 26) Next i1 = 0 ' number of cards shuffled so far on this iteration i2 = 26 ' number of cards left in half deck 1 i3 = 26 ' number of cards left in half deck 2 Do While i1 < 52 ' keep shuffling until the deck is full If i2 > 0 Then ' make sure cards are left in half deck 1 pick = Int(Rnd * flex + 1) ' randomly choose number of cards to be shuffled For k = 1 To pick ' add each shuffled card to the deck If i2 > 0 Then i2 = i2 - 1 Deck(i1) = Deck1(i2) i1 = i1 + 1 End If Next End If If i3 > 0 Then ' make sure cards are left in half deck 2 pick = Int(Rnd * 6 + 1) ' randomly choose number of cards to be shuffled For k = 1 To pick ' add each shuffled card to the deck If i3 > 0 Then i3 = i3 - 1 Deck(i1) = Deck2(i3) i1 = i1 + 1 End If Next End If Loop Next End Sub Sub sort_hands() Dim i As Integer, j As Integer, temp As Integer, hand As Integer For i = 0 To 52 DeckS(i) = Deck(i) ' copy deck order to a second eck to be sorted Next For hand = 0 To 3 ' sort by hand For i = 0 + 13 * hand To 12 + 13 * hand - 1 ' use a selection sort to sort by suit and rank For j = i + 1 To 12 + 13 * hand If DeckS(i) < DeckS(j) Then temp = DeckS(i) DeckS(i) = DeckS(j) DeckS(j) = temp End If Next Next Next End Sub Function sort_hand(ByVal Cards, idx) As String ' break each hand into suits Dim retval As String, hand As Integer, suit As Integer, i As Integer Dim temp As Integer retval = "" For suit = 0 To 2 ' use a modifed selection sort For i = suit + 1 To 3 If Cards(idx, suit) < Cards(idx, i) Then temp = Cards(idx, suit) Cards(idx, suit) = Cards(idx, i) Cards(idx, i) = temp End If Next Next For suit = 0 To 3 retval = retval + Str(Cards(idx, suit)) Next sort_hand = retval End Function Function sort_suit(ByVal Cards, idx) As String ' break each suit into hands Dim retval As String, hand As Integer, suit As Integer, i As Integer Dim temp As Integer retval = "" For hand = 0 To 2 ' use a modified selection sort For i = hand + 1 To 3 If Cards(hand, idx) < Cards(i, idx) Then temp = Cards(hand, idx) Cards(hand, idx) = Cards(i, idx) Cards(i, idx) = temp End If Next Next For hand = 0 To 3 retval = retval + Str(Cards(hand, idx)) Next sort_suit = retval End Function Sub print_dist(row As Long) ' output the distributions to the worksheet Dim i As Integer, suit As Integer Dim Hands(4, 4) As Integer, hand As Integer Dim Suits(4, 4) As Integer Dim temp As Integer i = 0 For hand = 0 To 3 'count the distribution of hands For suit = 3 To 0 Step -1 temp = 0 Do While (DeckS(i) >= suit * 13 And i < (hand + 1) * 13) temp = temp + 1 i = i + 1 Loop Hands(hand, suit) = temp Next Next Worksheets("Distributions").Range("A" & row).Value = sort_hand(Hands, 0) Worksheets("Distributions").Range("B" & row).Value = sort_hand(Hands, 1) Worksheets("Distributions").Range("C" & row).Value = sort_hand(Hands, 2) Worksheets("Distributions").Range("D" & row).Value = sort_hand(Hands, 3) Worksheets("Distributions").Range("E" & row).Value = sort_suit(Hands, 3) Worksheets("Distributions").Range("F" & row).Value = sort_suit(Hands, 2) Worksheets("Distributions").Range("G" & row).Value = sort_suit(Hands, 1) Worksheets("Distributions").Range("H" & row).Value = sort_suit(Hands, 0) End Sub Sub print_deal(row As Long) ' output the hands to the worksheet Dim i As Integer, suit As Integer Dim Hands(4) As String, hand As Integer Dim Suits(4) As String i = 0 For hand = 0 To 3 'insert a decimal character between the suits Hands(hand) = "" For suit = 3 To 0 Step -1 Do While (DeckS(i) >= suit * 13 And i < (hand + 1) * 13) Hands(hand) = Hands(hand) + Faces(DeckS(i) Mod 13) Suits(suit) = Suits(suit) + Faces(DeckS(i) Mod 13) i = i + 1 Loop If suit > 0 Then Hands(hand) = Hands(hand) + "." If hand < 3 Then Suits(suit) = Suits(suit) + "." Next Next Worksheets("Hands").Range("A" & row).Value = Hands(0) Worksheets("Hands").Range("B" & row).Value = Hands(1) Worksheets("Hands").Range("C" & row).Value = Hands(2) Worksheets("Hands").Range("D" & row).Value = Hands(3) Worksheets("Hands").Range("E" & row).Value = Suits(3) Worksheets("Hands").Range("F" & row).Value = Suits(2) Worksheets("Hands").Range("G" & row).Value = Suits(1) Worksheets("Hands").Range("H" & row).Value = Suits(0) End Sub Sub deal() Dim total As Long, i As Long total = 65000 'number of deals Call start_deck 'initialize all 52 cards For i = 1 To total If i Mod 500 = 0 Then Worksheets("Distributions").Range("I1").Value = i ' show progess on the worksheet Call shuffle 'shuffle the cards Call sort_hands 'sort the hands by suit and rank Call print_deal(i + 1) Call print_dist(i + 1) 'print the distribution to the worksheet Next Worksheets("Distributions").Range("A:H").Copy 'copy the distributions Worksheets("Distributions").Range("J1").PasteSpecial 'paste the distributions to the columns where summary formulas are pointed End Sub
  11. Thanks for the suggestion Hannie. And Stephen. I made 65,000 deals, of those 27411 deals had 6/3 suit splits between two hands 14681 split 2-2 (53.56%) 9155 split 3-1 (33.40%) 3575 split 4-0 (13.04%) 64348 deals had 5/4 suit splits between two hands 33606 split 3-1 (52.23%) 27478 split 2-2 (42.70%) 3264 split 4-0 (5.07%) Could someone please explain why these deals do not match Pavlicek's calculations but instead match my probability calculations?
  12. I need some help explaining these numbers. I ran through 400 hands generated by Bridge Baron 16. 200 with NS having 6 spades in North and 3 Spades in South, the opponents hands were 17 4-0 split 90 3-1 split 93 2-2 split 200 with NS having 5 spades in North and 4 Spades in South, the opponents hands were 21 4-0 split 105 3-1 split 74 2-2 split This is closer to my predictions than to Pavlicek's predictions. After so many people telling me I was wrong, I'm confused that the samples conformed somewhat close to my predictions made from my inadequate knowledge of probability theory. Can someone please tell me where I went wrong with the samples? I can give the 400 deal #'s to anyone who would like to verify.
×
×
  • Create New...