国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

程序員的算法趣題Q22: 不纏繞的紙杯電話

MoAir / 1989人閱讀

摘要:假設(shè)有幾個(gè)小朋友以相同間隔圍成圓周,要結(jié)對用紙杯電話相互通話。如果繩子交叉,很有可能會纏繞起來,所以結(jié)對的原則是不能讓繩子交叉。如下所示運(yùn)行結(jié)果上一篇異或楊輝三角形下一篇禁止右轉(zhuǎn)本系列總目錄參見程序員的算法趣題詳細(xì)分析和全解

目錄

1. 問題描述

2. 解題分析

3. 代碼及測試


1. 問題描述

????????用繩子連接紙杯制作“紙杯電話”——這應(yīng)該勾起了很多人對理科實(shí)驗(yàn)的回憶。如果把繩子拉直,對著一邊的紙杯講話,聲音就可以從另一邊的紙杯傳出。

????????假設(shè)有幾個(gè)小朋友以相同間隔圍成圓周,要結(jié)對用紙杯電話相互通話。如果繩子交叉,很有可能會纏繞起來,所以結(jié)對的原則是不能讓繩子交叉。

????????舉個(gè)例子,如果有 6 個(gè)小朋友,則只要如下圖一樣結(jié)對,

????????就可以順利用紙杯電話通話。也就是說,6 個(gè)人的時(shí)候,有 5 種結(jié)對方式。

????????求:有 16 個(gè)小朋友的時(shí)候,一共有多少種結(jié)對方式?

2. 解題分析

????????以f(N)表示當(dāng)有N個(gè)小朋友時(shí)的結(jié)對組合方式數(shù)可以推導(dǎo)出以下遞推關(guān)系式:

????????遞推過程以及筆算的結(jié)果如下所示:?

3. 代碼及測試

????????基于以上遞推關(guān)系,代碼就顯得微不足道了。如下所示:

# -*- coding: utf-8 -*-"""Created on Wed Sep  8 07:41:50 2021@author: chenxy"""import sysimport timeimport datetimeimport math# import randomfrom   typing import List# from   queue import Queue# from   collections import dequeimport itertools as itdef paringGame(N:int)->int:    memo = dict()    memo[0] = 1        for n in range(2,N+1,2):                nums = 0        for m in range((n//2)):            # print(n,m)            nums += memo[2*m] * memo[n-2-2*m]        memo[n] = nums            return memo[N]if __name__ == "__main__":            for N in range(16,30,4):                    tStart = time.time()            nums = paringGame(N)                tCost  = time.time() - tStart        print("Pairing combination numbers for {0} = {1}, tCost = {2:6.3f}(sec)".format(N,nums,tCost))   

運(yùn)行結(jié)果:

? ? ? ? 上一篇:Q21: 異或楊輝三角形

? ? ? ? 下一篇:Q27: 禁止右轉(zhuǎn)

????????本系列總目錄參見:程序員的算法趣題:詳細(xì)分析和Python全解

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/119659.html

相關(guān)文章

  • 一篇文章搞定前端面試

    摘要:客戶端發(fā)送包到服務(wù)器,并進(jìn)入狀態(tài),等待服務(wù)器確認(rèn)。再進(jìn)一步接收到客戶端的就進(jìn)入狀態(tài)。通常情況下連接就是連接,因此連接一旦建立通訊雙方開始互發(fā)數(shù)據(jù)進(jìn)行通信,直到其中一方或雙方斷開連接為止。統(tǒng)一資源定位符。 本文旨在用最通俗的語言講述最枯燥的基本知識 面試過前端的老鐵都知道,對于前端,面試官喜歡一開始先問些HTML5新增元素啊特性啊,或者是js閉包啊原型啊,或者是css垂直水平居中怎么實(shí)現(xiàn)...

    ISherry 評論0 收藏0
  • 一篇文章搞定前端面試

    摘要:客戶端發(fā)送包到服務(wù)器,并進(jìn)入狀態(tài),等待服務(wù)器確認(rèn)。再進(jìn)一步接收到客戶端的就進(jìn)入狀態(tài)。通常情況下連接就是連接,因此連接一旦建立通訊雙方開始互發(fā)數(shù)據(jù)進(jìn)行通信,直到其中一方或雙方斷開連接為止。統(tǒng)一資源定位符。 本文旨在用最通俗的語言講述最枯燥的基本知識 面試過前端的老鐵都知道,對于前端,面試官喜歡一開始先問些HTML5新增元素啊特性啊,或者是js閉包啊原型啊,或者是css垂直水平居中怎么實(shí)現(xiàn)...

    Airmusic 評論0 收藏0
  • 一篇文章搞定前端面試

    摘要:客戶端發(fā)送包到服務(wù)器,并進(jìn)入狀態(tài),等待服務(wù)器確認(rèn)。再進(jìn)一步接收到客戶端的就進(jìn)入狀態(tài)。通常情況下連接就是連接,因此連接一旦建立通訊雙方開始互發(fā)數(shù)據(jù)進(jìn)行通信,直到其中一方或雙方斷開連接為止。統(tǒng)一資源定位符。 本文旨在用最通俗的語言講述最枯燥的基本知識 面試過前端的老鐵都知道,對于前端,面試官喜歡一開始先問些HTML5新增元素啊特性啊,或者是js閉包啊原型啊,或者是css垂直水平居中怎么實(shí)現(xiàn)...

    lavnFan 評論0 收藏0
  • 序員算法趣題Q54: 偷懶算盤

    摘要:且聽下回分解基于動(dòng)態(tài)規(guī)劃策略的優(yōu)化解法參見程序員的算法趣題偷懶的算盤上一篇程序員的算法趣題同數(shù)包夾程序員的算法趣題同數(shù)包夾本系列總目錄參見程序員的算法趣題詳細(xì)分析和全解程序員的算法趣題詳細(xì)分析和全解 目錄 1. 問題描述 2. 解題分析 3. 代碼及測試 4. 后記 1. 問題描述 ??...

    wangzy2019 評論0 收藏0
  • 序員算法趣題Q45: 排序交換次數(shù)最少化

    摘要:能以最少交換次數(shù)到達(dá)升序有序排列記為的數(shù)列記為就等價(jià)于從代表的節(jié)點(diǎn)在這張圖中到達(dá)對應(yīng)的節(jié)點(diǎn)的最短路徑長度。上一篇質(zhì)數(shù)矩陣質(zhì)數(shù)矩陣下一篇唯一的序列本系列總目錄參見程序員的算法趣題詳細(xì)分析和全解程序員的算法趣題詳細(xì)分析和全解 目錄 1. 問題描述 2. 解題分析 3. 代碼及測試 4. 后記 ...

    flybywind 評論0 收藏0

發(fā)表評論

0條評論

最新活動(dòng)
閱讀需要支付1元查看
<