主頁 > 軟體設計 > 組合數學(持續更新)

組合數學(持續更新)

2021-09-05 08:31:44 軟體設計

文章目錄

  • 排列與組合
    • 四個基本計數原理
    • 集合的排列
    • 集合的組合
    • 多重集合的排列
    • 多重集合的組合


排列與組合


四個基本計數原理


( 1 ) (1) (1) 加法原理: 設集合 S S S 被劃分成兩兩不相交的部分 S 1 S_1 S1?, S 2 S_2 S2? S m S_m Sm?, 則 S S S的物件數目可以通過確定它的每一個部分的物件數目并如此相加而得到 :
∣ S ∣ = ∣ S 1 ∣ + ∣ S 2 ∣ + . . . + ∣ S m ∣ {\vert S \vert} = {\vert S_1 \vert} + {\vert S_2 \vert} +...+ {\vert S_m \vert} S=S1?+S2?+...+Sm?
例如: 從河北到四川可以坐火車或者坐飛機, 坐飛機有 3 3 3 種方法, 坐火車有 4 4 4

方法, 則從河北到四川的方法有 3 + 4 = 7 3+4=7 3+4=7 種方法


( 2 ) (2) (2) 乘法原理 : 加法原理的推論

例如: 從河北到四川第一程需要坐飛機,第二程需要坐火車, 坐飛機有 3 3 3 種方法, 坐火車有 4 4 4

方法, 則從河北到四川的方法有 3 ? 4 = 12 3*4=12 3?4=12 種方法


( 3 ) (3) (3) 減法原理: 令 A A A 是一個集合, 而 U U U 是包含 A A A 的更大集合, 設

A ? \overset{-}{A} A? A A A U U U 中的補,那么 A A A 中的物件數目 ∣ A ∣ {\vert A \vert} A由以下法則給出 ∣ A ∣ = ∣ U ∣ ? ∣ A ? ∣ {\vert A \vert} = {\vert U \vert} - {\vert \overset{-}{A} \vert} A=U?A?

例如: 計算 1..600 1..600 1..600 中不能被 6 6 6 整除的數字個數

∣ U ∣ = 600 {\vert U \vert} = 600 U=600

∣ A ? ∣ = 600 6 = 100 {\vert\overset{-}{A} \vert} = \frac{600}{6}=100 A?=6600?=100

∣ A ∣ = ∣ U ∣ ? ∣ A ? ∣ = 600 ? 100 = 500 {\vert A \vert} = {\vert U \vert} - {\vert \overset{-}{A} \vert} = 600 -100 =500 A=U?A?=600?100=500


( 4 ) (4) (4) 除法原理:令 S S S是一個有限集合, 把它劃分成 k k k 個部分使得每一部分包含的物件數目相等, 于是, 此劃分中的部分數目由下述公式給出:

k = ∣ S ∣ 在 一 個 部 分 中 的 對 象 數 目 k = \frac{{\vert S \vert}}{在一個部分中的物件數目} k=S?

例如: 在一排鴿巢中有 740 740 740 只鴿子,如果每個鴿巢含有 5 5 5 只鴿子, 那么鴿巢的數目為 740 5 = 148 \frac{{740}}{5}=148 5740?=148


兩道例題:

( 1 ) (1) (1) : 在 0 0 0 10000 10000 10000 中有多少個整數恰好有一位數字是 5 5 5

解法: 通過添加前導 0 0 0 (如 6 6 6 看作 0006 0006 0006 , 25 25 25 看作 0025 0025 0025 , 325 325 325 看作 0325 0325 0325), 可以把 S S S 中的每一個數都當作 4 4 4 位數, 現在我們根據數字 5 5 5 是位于第 1 , 2 , 3 , 4 1,2,3,4 1,2,3,4位從而把集合分成 4 4 4 個集合, 這 4 4 4 個集合中的每一個都含有 9 × 9 × 9 = 729 9\times9\times9 = 729 9×9×9=729個整數,從而 S S S 所含有的整數個數等于 4 × 729 = 2916 4\times729 = 2916 4×729=2916

(根據這個我出了一道題,可以試著練習一下題目鏈接)


( 2 ) (2) (2): 由數字 1 , 1 , 1 , 3 , 8 1,1,1,3,8 1,1,1,3,8 可以構造出多少個不同的 5 5 5 位數?

解法: 實際上我們只有兩種選擇, 3 3 3 要放置在哪里(有 5 5 5 種選擇), 8 8 8 要放置在哪里(有 4 4 4 種選擇),剩下的位置自動由 1 1 1 占位,所以根據乘法原理,答案是
5 × 4 = 20 5\times4=20 5×4=20


集合的排列


定理 1 1 1: 對于正整數 n n n r r r , r ≤ n r\leq n rn, 有
P ( n , r ) = n × ( n ? 1 ) × ? × ( n ? r + 1 ) P(n,r) = n \times (n-1) \times \cdots \times (n-r+1) P(n,r)=n×(n?1)×?×(n?r+1)
并規定 0 ! = 1 0! = 1 0!=1

于是可以寫成 P ( n , r ) = n ! ( n ? r ) ! P(n,r) = \frac{n!}{(n-r)!} P(n,r)=(n?r)!n!?

例題: 將 26 26 26 個字母排序, 使得元音字母 a , e , i , o , u a,e,i,o,u a,e,i,o,u任意兩個都不能連續出現,這種排序方法的總數是多少?

解法: 首先排序 21 21 21 個輔音字母, 總共有 21 ! 21! 21! 種方法, 然后將 5 5 5 個元音字母插空到 22 22 22 個位置種,所以答案是

P ( 22 , 5 ) × 21 ! = 22 ! 17 ! × 21 ! P(22,5) \times 21!= \frac{22!}{17!} \times 21! P(22,5)×21!=17!22!?×21!

剛剛例題的排列叫做線性排列, 除了線性排列以外, 還有圓排列


考慮以下問題

6個孩子沿著圓圈行進,他們能以多少種不同的方式形成一個圓?

解法:
因為孩子們在行進中, 因此重要的是他們彼此間的相對位置, 因此只要其中一個排列可以通過旋轉與另外一個重合,即通過一個圓周位移而得到另一個, 所以每一個回圈排列對應 6 6 6 個線性排列

例如下面的回圈排列:

在這里插入圖片描述
來自于下面的線性排列中的每一個:

123456 123456 123456
234561 234561 234561
345612 345612 345612
456123 456123 456123
561234 561234 561234
612345 612345 612345

把上面每一個排列的最后一位移到第一位之前就形成前面的回圈排列,于是, 6 6 6個孩子的線性排列與回圈排列的對應是 6 6 6 1 1 1 ,因此為了求回圈排列數目, 我們把線性排列個數除以 6 6 6 ,因此 6 6 6 個孩子的回圈排列數目是
6 ! 6 = 5 ! \frac{6!}{6} = 5! 66!?=5!

定理 2 2 2: n n n 元素集合的回圈 r r r 排列的數目是

P ( n , r ) r = n ! r × ( n ? r ) ! \frac{P(n,r)}{r}= \frac{n!}{r\times(n-r)!} rP(n,r)?=r×(n?r)!n!?
特別地, n n n 元素集合的回圈排列的數目是 ( n ? 1 ) ! (n-1)! (n?1)!


例題1: 10 10 10 個人要圍坐一個圓桌,其中有兩個人不愿意挨著坐, 共有多少圓形座位設定方法?

解法1: 運用減法原理, 將 p 1 p_1 p1? p 2 p_2 p2? 兩個人看作一個整體 X X X , 于是考慮 9 9 9 個人按照圓桌座位,是 2 × 9 ! 9 = 2 × 8 ! 2 \times\frac{9!}{9} =2\times 8! 2×99!?=2×8!, 十個人按照圓桌座位方法總數是 9 ! 9! 9! ,所以答案是
9 ! ? 2 × 8 ! 9!-2\times 8! 9!?2×8!

解法2: p 1 p_1 p1? 左右兩邊的座位方法有 8 × 7 8 \times 7 8×7 種可能, 將這三個人看作一個整體, 于是考慮 8 8 8 個人按照圓桌座位,是 2 × 8 ! 8 = 2 × 7 ! 2 \times\frac{8!}{8} =2\times 7! 2×88!?=2×7!,所以答案是
8 × 7 × 7 ! 8\times 7 \times 7! 8×7×7!


例題2: 20 20 20 種顏色的念珠串成項鏈,有多少種不同的項鏈?

解法:

首先很明顯是回圈排列, 所以項鏈最多數目是 20 ! 20 = 19 ! \frac{20!}{20} =19! 2020!?=19!,然后考慮項鏈可以翻轉過來而不改變排列,所以答案是 19 ! / 2 19!/2 19!/2

關于這部分的理解,例如是 3 3 3 個人按照圓桌座位排序是這兩種
在這里插入圖片描述
其中每個人的相對位置改變了, 所以是兩種方法

但對于項鏈來說,可以翻轉,所以本質上是一種項鏈

在這里插入圖片描述

(不知道我說清楚了沒, 實在不理解可以想圍著圓桌坐沒法翻轉過去倒立著坐)


集合的組合


定理1: 對于 0 ≤ r ≤ n 0 \leq r \leq n 0rn , 有

P ( n , r ) = r ! ( n r ) P(n,r)=r! \begin{pmatrix} n \\ r \\ \end{pmatrix} P(n,r)=r!(nr?)

因此 ( n r ) = n ! r ! ( n ? r ) ! \begin{pmatrix} n \\ r \\ \end{pmatrix}=\frac{n!}{r!(n-r)!} (nr?)=r!(n?r)!n!?

例如: 在平面上給出 25 25 25 個點使得沒有 3 3 3 個點共線, 這些點確定多少個三角形?

解法:

( 25 3 ) = 25 ! 3 ! 22 ! \begin{pmatrix} 25 \\ 3 \\ \end{pmatrix}=\frac{25!}{3!22!} (253?)=3!22!25!?


定理2: (帕斯卡公式) 對于所有滿足 1 ≤ k ≤ n ? 1 1 \leq k \leq n-1 1kn?1 的整數 n n n k k k , 有

( n k ) = ( n ? 1 k ) + ( n ? 1 k ? 1 ) \begin{pmatrix} n \\ k \\ \end{pmatrix}=\begin{pmatrix} n-1 \\ k \\ \end{pmatrix}+\begin{pmatrix} n-1 \\ k-1 \\ \end{pmatrix} (nk?)=(n?1k?)+(n?1k?1?)

可以從以下角度理解:

n n n 個蘋果中選出 k k k 個蘋果, 對于第 1 1 1 個蘋果,有兩種選擇,可以選也可以不選

如果選擇了, 則是從剩下 n ? 1 n-1 n?1 個蘋果中選出 k ? 1 k-1 k?1 個蘋果,即 ( n ? 1 k ? 1 ) \begin{pmatrix} n-1 \\ k-1 \\ \end{pmatrix} (n?1k?1?)

如果不選 ,則是從剩下 n ? 1 n-1 n?1 個蘋果中選出 k k k 個蘋果,即 ( n ? 1 k ) \begin{pmatrix} n-1 \\ k \\ \end{pmatrix} (n?1k?)


定理3: 對于 n ≥ 0 n \geq 0 n0, 有

( n 0 ) + ( n 1 ) + ( n 2 ) + ? + ( n n ) = 2 n \begin{pmatrix} n \\ 0 \\ \end{pmatrix} +\begin{pmatrix} n \\ 1 \\ \end{pmatrix}+\begin{pmatrix} n \\ 2 \\ \end{pmatrix}+ \cdots + \begin{pmatrix} n \\ n \\ \end{pmatrix} = 2^n (n0?)+(n1?)+(n2?)+?+(nn?)=2n


多重集合的排列


定理1:

S S S 是有 k k k 種不同型別物件的多重集合, 每一個元素都有無線重復數,那么 S S S r r r 排列是 k r k^r kr

例如: 1 , 2 , 3 , 4 1,2,3,4 1,2,3,4 可以構成多少個四位數,答案顯然是 4 4 4^4 44


定理2: S S S 是多重集合, 它有 k k k 種不同型別的物件, 且每一種型別的有限重復數分別是 n 1 , n 2 , ? ? , n k n_1, n_2, \cdots ,n_k n1?,n2?,?,nk?,且 S S S 的大小為 n = n 1 + n 2 + ? + n k n=n_1+n_2+ \cdots +n_k n=n1?+n2?+?+nk?, 則 S S S 的排列數目是

n ! n 1 ! n 2 ! ? n k ! \frac{n!}{n_1!n_2! \cdots n_k!} n1?!n2?!?nk?!n!?

例題: 詞MISSISSIPPI中字母的排列數是

11 ! 1 ! 4 ! 4 ! 2 ! \frac{11!}{1!4!4!2!} 1!4!4!2!11!?

因為這個數字等于多重集合 { 1 ? M , 4 ? I , 4 ? S , 2 ? P } \lbrace 1 \cdot M, 4 \cdot I,4 \cdot S,2 \cdot P \rbrace {1?M,4?I,4?S,2?P} 的排列數


對于定理 2 2 2 還有另外一種理解方式:

把一個物件集合劃分成指定大小的各個部分, 其中這些部分都有指定給他們的標簽, 為了方便理解,給出以下例子

例子: 考慮有 4 4 4 個物件的集合 { a , b , c , d } \lbrace a,b,c,d \rbrace {a,b,c,d}, 把它劃分成兩個子集, 每一個大小為 2 2 2

如果沒有標簽, 那么有三種劃分方式:
{ a , b } \lbrace a,b \rbrace {a,b}; { c , d } \lbrace c,d \rbrace {c,d}
{ a , c } \lbrace a,c \rbrace {a,c}; { b , d } \lbrace b,d \rbrace {b,d}
{ a , d } \lbrace a,d \rbrace {a,d}; { b , c } \lbrace b,c \rbrace {b,c}

現在假設給這些部分做上不同的標簽, (例如, 紅色和藍色), 則有 6 6 6 種劃分,例如對于 { a , b } \lbrace a,b \rbrace {a,b} , { c , d } \lbrace c,d \rbrace {c,d}

紅色 { a , b } \lbrace a,b \rbrace {a,b} 藍色 { c , d } \lbrace c,d \rbrace {c,d}
藍色 { a , b } \lbrace a,b \rbrace {a,b} 紅色 { c , d } \lbrace c,d \rbrace {c,d}

在一般情況下, 我們可以用 B 1 , B 2 , ? ? , B k B_1, B_2,\cdots, B_k B1?,B2?,?,Bk? 標記這些部分,并且把這些部分想象成一些盒子,此時,以下定理成立


定理3: n n n 是正整數, 并設 n 1 , n 2 , ? ? , n k n_1, n_2, \cdots, n_k n1?,n2?,?,nk? n = n 1 + n 2 + ? + n k n=n_1+n_2+\cdots + n_k n=n1?+n2?+?+nk?, 把 n n n 物件集合劃分成 k k k 個標有標簽的盒子, 且第 1 1 1 個盒子有 n 1 n_1 n1? 個物件, 第 2 2 2 個盒子有 n 2 n_2 n2? 個物件, ? \cdots ? , 第 k k k 個盒子有 k k k 個物件,這樣的劃分方法數有

n ! n 1 ! n 2 ! ? n k ! \frac{n!}{n_1!n_2! \cdots n_k!} n1?!n2?!?nk?!n!?

如果這些盒子沒有標簽,且 n 1 = n 2 = ? = n k n_1=n_2=\cdots = n_k n1?=n2?=?=nk?,那么劃分為

n ! k ! n 1 ! n 2 ! ? n k ! \frac{n!}{k!n_1!n_2! \cdots n_k!} k!n1?!n2?!?nk?!n!?

這是因為, 對于把這些物件分配到 k k k 個沒有標簽的盒子的每一種方法, 都有 k ! k! k! 種方法給這些盒子標上標簽,因此使用除法原理, 沒有標簽的盒子的劃分是

n ! k ! n 1 ! n 2 ! ? n k ! \frac{n!}{k!n_1!n_2! \cdots n_k!} k!n1?!n2?!?nk?!n!?


如果不好理解, 可以從以下方面考慮

對于定理 2 2 2 是有 k k k 種元素,每一種有 n 1 , ? ? , n k n_1,\cdots, n_k n1?,?,nk? 個,則每一種元素要占位 n 1 , ? ? , n k n_1,\cdots, n_k n1?,?,nk?

而定理 3 3 3 是 將 n = n 1 , ? ? , n k n=n_1,\cdots, n_k n=n1?,?,nk?個元素, 裝在 k k k 個不同的盒子里 (染成 k k k 種顏色), 每一個盒子分別要裝 n 1 , ? ? , n k n_1,\cdots, n_k n1?,?,nk? 個元素, 也可以看作是有 k k k 種元素,每一種有 n 1 , ? ? , n k n_1,\cdots, n_k n1?,?,nk?

如果還不是很清楚的話,我們可以回看這個例子:

考慮有 4 4 4 個物件的集合 { a , b , c , d } \lbrace a,b,c,d \rbrace {a,b,c,d}, 把它劃分成兩個子集, 每一個大小為 2 2 2, 且標記為兩種顏色 (紅色和藍色)

也可以看作是 4 4 4 個元素分成 2 2 2 種 , 每一種都有 2 2 2

可以細細體會一下


例子: 有多少種方法在 8 × 8 8 \times 8 8×8 的棋盤上放置 8 8 8 個非攻擊型車? (兩個車能相互攻擊當且僅當它們位于棋盤的同一行或同一列)

解法: 因為兩輛車不同位于同一行和同一列 , 所以我們可以一列一列的擺放車, 第 1 1 1 列的車有 8 8 8 行可以放置 , 第 2 2 2 列的車不能和上一列的車擺在同一行 , 有 7 7 7 行可以放置 , 之后同理, 所以很明顯有 8 ! 8! 8! 種方法


在上面討論中, 我們默認每輛車之間沒有區別, 現在我們考慮 8 8 8 輛不同顏色的車, 在決定哪 8 8 8 個方格要被這些車占據后 ( 8 ! 8! 8! 種可能), 我們現在還要決定在每個占據的方格上的車是什么顏色的, 很明顯也有 8 ! 8! 8! 種可能,于是,在 8 × 8 8 \times 8 8×8 棋盤上具有 8 8 8 種不同顏色的 8 8 8 個非攻擊型的車的放置方法數為 8 ! × 8 ! 8! \times 8! 8!×8!


現在假設不是有 8 8 8 個不同顏色的車, 而是有 1 1 1 個紅車 ( R R R) , 3 3 3 個藍車 ( B B B) 和 4 4 4 個黃車 ( Y Y Y), 同時還假設同顏色的車之間沒有區別, 現在, 我們看到一個多重集合 { 1 ? R , 3 ? B , 4 ? Y } \lbrace 1 \cdot R, 3 \cdot B,4 \cdot Y \rbrace {1?R,3?B,4?Y}

根據定理 2 2 2 這個多重集合的排列個數等于
8 ! 1 ! 3 ! 4 ! \frac{8!}{1!3!4!} 1!3!4!8!?

因此,在 8 × 8 8 \times 8 8×8 棋盤上放置 1 1 1 個紅車 , 3 3 3 個藍車和 4 4 4 個黃車并使它們互相之間不能攻擊的方法數為

8 ! 8 ! 1 ! 3 ! 4 ! 8!\frac{8!}{1!3!4!} 8!1!3!4!8!?


多重集合的組合

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/297619.html

標籤:其他

上一篇:【作業系統】—執行緒概念和多執行緒模型

下一篇:函式和宏實作交換二進制位

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more