1. 程式人生 > >演算法面試之撲克牌中順子和同花哪一個概率大?

演算法面試之撲克牌中順子和同花哪一個概率大?

問題描述

  • 除去大小王,剩餘的52張牌中,洗牌後,抓5張,抓到的結果中,同花和順子哪一個概率大,請寫出其演算法。

演算法分析

  • 顯然是一個組合問題,不需要考慮5張撲克牌的順序,相當於52張中隨機抽取5張, 總的組合數為:C(52,5 ) = 52! / ( 5! * (52-5)! )
    • 結果是同花的情況為4種花色中選一個,然後在其中一個花色13張中選5張,總的組合數:C( 4 , 1)*C( 13 , 5 )。
    • 結果是順子的情況,這裡假設順子的九種類型為:2-6,3-7,、、、10-A,在每種型別中可以出現不同花色的數字,因此總的組合數為C(9,1)x4x4x4x4x4。
  • 因此,同花的概率是P1 = C( 4 , 1)*C( 13 , 5 ) / C(52,5)= 0.00132
  • 順子的概率是P2 = C(9,1)x4x4x4x4x4 /C(52,5)= 0.003546

綜上,順子的概率比同花要大。

相關推薦

演算法面試撲克牌一個概率

問題描述 除去大小王,剩餘的52張牌中,洗牌後,抓5張,抓到的結果中,同花和順子哪一個概率大,請寫出其演算法。 演算法分析 顯然是一個組合問題,不需要考慮5張撲克牌的順序,相當於52張中隨機抽取5

每天一道演算法題(22)——撲克牌

題目:          從撲克牌中隨機抽5張牌,判斷是不是一個順子,即這5張牌是不是連續的。2-10為數字本身,A為1,J為11,Q為12,K為13,而大小王可以看成任意數字。 思路:      

程式設計師面試題精選100題(40)-撲克牌[演算法]

題目:從撲克牌中隨機抽5張牌,判斷是不是一個順子,即這5張牌是不是連續的。2-10為數字本身,A為1,J為11,Q為12,K為13,而大小王可以看成任意數字。 分析:這題目很有意思,是一個典型的寓教於樂的題目。 我們需要把撲克牌的背景抽象成計算機語言。不難想象,我們可以把5

演算法:撲克牌問題

最近在研究演算法的問題時,遇到了一個關於從撲克牌的順子問題 題目為: 從撲克牌中隨機抽 5 張牌,判斷是不是順子,即這 5 張牌是不是連續的。 2-10 為數字本身,A 為 1,J 為 11,Q

撲克牌的程式設計演算法程式碼(C)

從撲克牌中隨機抽取5張牌, 判斷是不是一個順子, 即這5張牌是不是連續的. 2~10為數字本身, A為1, J為11, Q為12, K為13, 而大小王可以看成任意數字. 排序, 判斷字串之間的間隔數, 如果小於等於大小王的數量, 則是連續, 否則不是. /

面試Mybatis的$#區別?

Mybatis是如何做到sql預編譯的呢?其實在框架底層,是JDBC中的PreparedStatemen類在起作用,PreparedStatement是我們很熟悉的Statement的子類,它的物件包含了編譯好的sql語句。這種“準備好”的方式不僅能提高安全性,而且在多次執行

YII用戶註冊用戶登錄(三)模型規則制定分析

模型 als del 郵箱 收信 com unique mark div 3 模型中規則制定和分析 YII模型主要分為兩類,一個數據模型,處理和數據庫相關的增刪改查。繼承CActiveRecord。還有一個是表單模型,繼承CFormModel。不與數據庫進行交互。操作

【劍指offer】撲克牌

計數排序 int 哈希 image tar ati () con 模擬 轉載請註明出處:http://blog.csdn.net/ns_code/article/details/27849055題目描寫敘述:LL今天心情特別好,由於他去買了一副撲克牌,發現裏面竟然有2個大

劍指offer:撲克牌問題

LL今天心情特別好,因為他去買了一副撲克牌,發現裡面居然有2個大王,2個小王(一副牌原本是54張^_^)...他隨機從中抽出了5張牌,想測測自己的手氣,看看能不能抽到順子,如果抽到的話,他決定去買體育彩票,嘿嘿!!“紅心A,黑桃3,小王,大王,方片5”,“Oh My God!

openssl 學習證書提取N E

通常數字證書包含很多資訊,其中N和E值即我們稱為的公鑰。如何從PEM 或者DER格式的證書中提出證書呢?下面給出程式碼實現從PEM和DER編碼的證書中提出N、E。 #include <openssl/evp.h> #include <openssl/x

面試jquery的ajax方法引數

url: 要求為String型別的引數,(預設為當前頁地址)傳送請求的地址。 type: 要求為String型別的引數,請求方式(post或get)預設為get。注意其他http請求方法,例如put和delete也可以使用,但僅部分瀏覽器支援。 timeout:

Linux運維系統的檔案目錄的遠端傳輸

一、使用scp進行檔案或目錄的遠端傳輸 scp                  缺點:速度慢  1.檔案的傳輸     (1)scp  file  [email protected]:/dir      以上傳的方式進行復制檔案(dir為絕對路徑,file也為絕

Java框架Mybatis佔位符 # $ 的區別是什麼?

佔位符 # 和 $ 的區別 /# 符號存在預編譯的過程,對問號賦值,防止 SQL 注入。它將傳入的資料都當成一個字串,會對自動傳入的資料加一個雙引號 /$ 沒有預編譯過程,將傳入的資料直接顯示生成 SQL 中 /$ 符號是直譯的方式,一般用在 order

演算法面試連結串列相交問題

簡介 【題目】 在本題中,單鏈表可能有環,也可能無環。給定兩個單鏈表的頭節點 head1和head2,這兩個連結串列可能相交,也可能不相交。請實現一個函式, 如果兩個連結串列相交,請返回相交的第一個節點;如果不相交,返回null 即可。 【要求】 如果連結串列

OkHttp面試--HttpEngine的readResponse流程簡介

上一節主要大體看了一下sendRequest的流程,本節來看一下當請求傳送出去之後,是如果讀取請求體中的資料的,具體的程式碼都在HttpEngine.readResponse方法中,程式碼如下: public void readResponse() thr

OkHttp面試--HttpEngine的sendRequest方法詳解

上一節我們介紹了OkHttp網路非同步請求的整個流程。其中在流程的最後階段,我們發現最終建立了HttpEngine物件,並分別呼叫的此物件的sendRequest和readResponse方法。這兩個方法 分別有它相應的作用。這一節我們著重來分析sendRequ

常見演算法問題最長公共串問題(Longest common substring problem)

對於尋找兩個字串的最長公共子字串的問題,暴力搜尋的方式的時間複雜度將高達O(n^3), 而通過字尾樹的方式可將時間複雜度降低到O(n^2)。 以下是我實現的C++原始碼: #include <

專案總結angular利用inputoutput實現元件之間資料的傳遞

目前元件化思想非常盛行,近期在在專案中就用到了input和output的元件,所以就在此總結下來。話不多說,進入正題,先看程式碼。 html: <div class=“shop” [class.actived] ="hide"> <div *ngIf="shopI

演算法,求陣列的元素為某個數

1、更簡單一點的題目:判斷總共n個數,從1-n,找出其中和為 S的一段序列 這個題目採用的是:用維持一個視窗,如果視窗中的數小於了S就像S向右擴張,如果大於S就把左邊的數去掉 import java.util.ArrayList; public clas

劍指Offer面試題44:撲克牌 Java實現

/************************************************************** * Copyright (c) 2016, * All rights reserved. * 版 本 號:v1.0