zetavg/zh-tw-wikipedia huggingface dataset:
动态分派

在計算機科學中，**動態分派**（Dynamic dispatch）是指運行時選擇哪一個多態的實現（具體的方法或函數）來調用的過程。動態分派通常被應用於物件導向編程（OOP）的語言和系統，並被認為是一個主要特點。

物件導向的系統把一個問題看作是一系列通過名字引用來制定操作的相互影響的物體。多態性是指一些可互換的物體雖有相同名字但卻在行為上不同的現象。例如，一個文件對象和一個資料庫對象都有一個儲存記錄的方法來記錄需要存儲的的個人記錄，但是二者的實現卻不同。一個程序可以有對文件或資料庫的訪問。當一個程序調用對象的存儲記錄時，有一些東西需要來決定採取哪種行為。如果有人認為 OOP 僅僅指給對象發送信息，那麼在這個例子中程序僅僅把一條存儲記錄信息發送給了一個未知類型的對象，而把如何將這條信息發送給正確對象交給運行支持系統來處理。這個對象來決定它執行哪些行為。

與動態分派成對比的是靜態分派，在靜態分派中，對一個多態操作的實現是在編譯時間就選擇好的。動態分派的目的在於支持那些當在編譯時間內無法決定一個多態操作的合適的實現因為這個決定取決於這個操作的一個或多個實際參數的運行類型的情形。

動態分派和動態綁定不同。在選擇操作的上下文中，綁定把名稱和操作相關聯，而分派則在確定名稱所引用的操作之後選擇操作的實現。通過使用動態分派，名稱可以在編譯時被綁定到多態操縱中，但是直到運行時才執行該實現。雖然動態分派不暗示後期綁定，但後期綁定意味著動態分派，因為綁定決定了什麼可以分派。

### 單一與多重分派

選擇調用方法的具體版本的決定可以基於單個對象或者對象的組合。前者被稱為單一分派，並直接由常見的物件導向語言如 C++，Java，Smalltalk、Objective-C、Swift、JavaScript 和 Python 所支持。在這些和與其相類似的語言中，我們可以調用類似於語法的劃分的方法。其參數是可選的。這被認為是發送一個名為 divide，帶有除數參數的信息來做除法。

相比之下，一些語言（例如 Common Lisp、Dylan、Julia）採用基於操作數的組合的分派方法或函數；在除法情況下，被除數和除數的類型一起確定將執行哪個除法運算。這就叫做多重分派。

### 動態分派機制

語言可以用不同的動態分派機制來實現。 由語言提供的動態分派機制的選擇在很大程度上改變了在給定語言內可用或最自然使用的編程範例。

通常，在類型語言中，會基於參數的類型（最常見地基於消息的接收者的類型）來執行分派機制。 這可能被稱為「單類型動態分派」。具有較弱或無打字系統的語言通常攜帶分派表作為每個對象的對象數據的一部分。這允許實例行為因為每個實例可以將給定消息映射到單獨的方法。而有些語言提供混合方法。

動態分派總會產生開銷，因此一些語言為特定方法提供靜態分派。

#### C++ 實現

C ++ 使用早期綁定，並提供動態和靜態分派。 分派的默認形式是靜態的。 為了獲得動態分派，程式設計師必須將一個方法聲明為 virtual。

C ++ 編譯器通常使用稱為虛擬表（vtable）的資料結構來實現動態分派，該表定義給定類（C ++ 本身沒有 vtable 的概念）的消息到方法映射。 然後，該類型的實例將存儲指向此表的指針作為其實例數據的一部分。 當使用多重繼承時，這是複雜的因為 C ++ 不支持後期綁定，C ++ 對象中的虛擬表不能在運行時修改，這將分派目標的潛在集限制為在編譯時選擇的有限集。

類型重載不會在 C ++ 中產生動態分派，因為語言將消息參數的類型視為正式消息名稱的一部分。 這意味著程式設計師看到的消息名不是用於綁定的正式名稱。

#### Go 和 Rust 實現

在 Go 和 Rust 中使用了一種更多樣化的早期綁定。 Vtable 指針會攜帶對象引用作為一種 'fat 指針 '（go 中的接口，或 Rust 中的 'trait 對象 '）。

這使得支持的接口與底層資料結構分離。 為了正確使用類型，每個編譯庫不需要知道所有的接口範圍，只需要知道他們所需要的具體 vtable 布局即可。 代碼可以將不同接口的同一塊數據傳遞給不同的函數。 這種多功能性以每個對象引用的額外數據為代價，如果許多這樣的引用被持久存儲會出問題。

#### Smalltalk 實現

Smalltalk 使用基於類型的消息分派器。每個實例都有一個類型，其定義包含方法。當實例接收到消息時，分派器在消息到方法映射中查找該類型的相應方法，然後調用該方法。

因為一個類型可以有一個基本類型鏈，這個查找可能是非常昂貴的。 一個不成熟的 Smalltalk 機制的實現似乎比 C++ 有更高的開銷，並且這種開銷將會發生在對象接收的每個消息里。

真正的 Smalltalk 實現通常使用一種稱為內聯緩存的技術，這種技術使得方法分派非常迅速。內聯緩存基本上存儲調用站點的前一個目標方法地址和對象類（或者多對緩存的多個對）。緩存方法使用最常見的基於方法選擇器的目標方法（或僅緩存缺失處理程序）來進行初始化。當在執行期間到達方法調用站點時，它只調用緩存中的地址。（在動態代碼生成器中，此調用是直接調用，因為直接地址由緩存缺失邏輯負責回填）。被調用方法中的前序代碼將緩存的類與實際對象類進行比較，如果它們不匹配，程序到緩存缺失處理程序分支中尋找正確的方法。一個快速實現可以具有多個高速緩存條目，並且它通常僅需要幾個指令就可以在初始高速緩存未命中時執行正確的方法。常見的情況是一個緩存的類匹配，並且執行只會在該方法中繼續。

外部緩存也可以通過使用對象類和方法選擇器來實現在方法調用邏輯中的使用。在一個設計中，類和方法選擇器被哈希並且用作到方法分派高速緩存表中的索引。

由於 Smalltalk 是一種反射語言，許多實現允許使用動態生成方法查找表的方法將單個對象變成對象。這允許在每個對象的基礎上更改對象行為。一個被稱為基於原型語言的語言類別已經從這裡生根發芽，其中最著名的是 Self 和 JavaScript。方法分派緩存的細心的設計甚至允許基於原型的語言具有高性能分派方法。

許多其他動態類型的語言，包括 Python、Ruby、Objective-C 和 Groovy 都使用類似的方法。

## 參見

* 函數重載
* 訊息傳遞 (軟體)
* 方法重寫
* 名稱綁定

## 參考文獻

2.Driesen, Karel; Hölzle, Urs; Vitek, Jan (1995). _Message Dispatch on Pipelined Processors_. ECOOP. 

3.Müller, Martin (1995). _Message Dispatch in Dynamically-Typed Object-Oriented Languages_ (Master thesis). University of New Mexico. pp. 16–17.

* Lippman, Stanley B. Inside the C++ Object Model. Addison-Wesley. 1996. ISBN 0-201-83454-5.
动态制动

**電阻制軔**（英語：Rheostatic braking）是鐵路機車的一種制軔方式，廣泛應用於電力機車和電傳動柴油機車。在制軔過程中，將原來驅動輪對的牽引電動機轉變為發電機，利用列車的慣性由輪對帶動電動機轉子旋轉而發電，從而產生反轉力矩，消耗列車的動能，達到產生制軔作用的目的。而電機發出的電流通過專門設置的電阻器，採用通風散熱將熱量消散於大氣。

由於電阻制軔的原理是因為轉子有電流流動，在定子的磁場產生與轉動方向相反的力矩，制軔力與速度成正比，因此當機車運行速度較低（～10 公里／小時）的時候，由於轉子轉速慢，減少了產生的電流和反轉力矩，會導致制軔效率大幅下降甚至失效。**加饋電阻制軔**正是為了解決這個問題而出現，在低速制軔時由機車電路系統為轉子供給一定電流，增加制軔力，使機車在慢速下也能進行電阻制軔，有效擴大電阻制軔的應用範圍。

動力制軔 (Dynamic braking) 應用包含電阻制軔 (Rheostatic braking) 和再生制軔 (Regenerative braking) 二種；都是利用旋轉電機的可逆性，將動能轉為電能的列車制軔方式；最早的應用是將列車動能產生的電能透過電阻器消耗用於減速。再生制軔則是在電阻制軔基礎上進一步發展而成的制軔方式，將制軔過程發出的電能反饋回電氣化鐵路供電網，使本來由電能變成的動能再生為電能，而不是變成熱能消散掉。電阻制軔應用最早，所以早先電阻制軔也稱**動力制軔**，目前則擴展包含了再生制軔。

## 優點

* 與傳統的踏面制軔相比，電阻制軔的使用能有效降低輪對踏面磨耗，延長閘瓦和輪對的壽命。
* 由於機械摩擦係數隨著溫度的提高而下降，踏面制軔的效率與機車速度成反比；而電阻制軔相反，速度越高制軔效果越明顯。
* 電阻制軔也可以用於列車下坡時的恆速控制。

## 應用限制

* 最大勵磁電流限制：若超過此限制則勵磁繞組會發熱，嚴重會燒損繞組；另一方面磁路飽和，磁通增加有限，調節效果不明顯。
* 粘著力限制：若機車制軔力大於此限制會導致機車滑行。
* 最大制軔電流限制：取決於直流電動機的電樞繞組的運行溫升，一般不超過正常牽引工況時的持續電流。
* 最大制軔功率限制：由於機車的制軔電阻的功率、冷卻能力有限，電阻制軔的最大功率一般由制軔電阻的容許發熱量決定，通常等於等於或小於機車的小時功率。
* 牽引電動機安全換向限制：直流牽引電動機的安全換向取決於電抗電勢，要維持電抗電勢在容許值內，隨著速度的提高必須相應的減少制軔電流。

## 參看

* 踏面制軔
* 再生制軔

## 參考文獻
动态博弈

賽局理論中，**序列賽局**（英語：sequential game），是指在賽局中，一個參與者先於另一個參與者行動。值得注意的是，後者必須至少能獲得先發者的部分行為資訊，否則行為時間的先後就不會有任何效果。

組合賽局一般是動態賽局。

賽局矩陣無法表示動態過程，用賽局樹（擴展式表述）來表示。動態賽局常用逆向歸納法求解。

許多棋類遊戲都是序列賽局，如井字棋、象棋、西洋棋、圍棋等。決策樹的大小可以根據遊戲的複雜性而有所不同，範圍從一個小而詳盡的遊戲樹的井字棋，而圍棋決策樹如此之大，甚至電腦無法完全映射出的非常複雜的賽局樹。
动态口令

**一次性密碼**（英語：one-time password，簡稱 **OTP**），又稱**動態密碼**或**單次有效密碼**，是指計算機系統或其他數位裝置上只能使用一次的密碼，有效期為只有一次登錄會話或交易。OTP 避免了一些與傳統基於（靜態）密碼認證相關聯的缺點；一些實作還納入了雙因素認證，確保單次有效密碼需要存取一個人有的某件事物（如內建 OTP 計算機的小鑰匙掛件裝置）以及一個人知道的某件事物（如 PIN）。

相對於靜態密碼，OTP 最重要的優點是它們不容易受到重放攻擊（replay attack）。這意味著管理記錄已用於登錄到服務或進行交易的 OTP 的潛在入侵者將無法濫用它，因為它將不再有效。第二個主要優點是，使用多個系統相同（或類似）密碼的使用者，如果其中一個密碼被攻擊者獲得，不是對所有的系統都容易變得脆弱。許多 OTP 系統也旨在確保會話不能輕易被截獲或沒有前一個會話期間產生不可預測數據的知識類比，從而進一步減少攻擊面。

OTP 已被作為傳統密碼一個可能的替代以及增強方式討論。不利的是，OTP 人類難以記憶。因此，它們需要額外的技術來運作。

一般的靜態密碼在安全性上容易因為木馬與鍵盤側錄程式等而被竊取，而只要花上相當程度的時間，也有可能被暴力破解。為了解決一般密碼容易遭到破解情況，因此開發出一次性密碼的解決方案。

## 原理

動態密碼的產生方式，主要是以時間差做為伺服器與密碼產生器的同步條件。在需要登錄的時候，就利用密碼產生器產生動態密碼，OTP 一般分為計次使用以及計時使用兩種，計次使用的 OTP 產出後，可在不限時間內使用；計時使用的 OTP 則可設定密碼有效時間，從 30 秒到兩分鐘不等，而 OTP 在進行認證之後即廢棄不用，下次認證必須使用新的密碼，增加了試圖不經授權存取有限制資源的難度。

## 取得方式

**文字簡訊**
: 由於文字簡訊是很容易能接觸到的技術，也因此最常用來傳遞動態密碼；然而，對於中間人攻擊的抗性較低，也是此種方式的安全性問題。

**紙本檔案**
: 在某些國家的線上銀行系統會採用預印的方式提供一次性密碼。

**行動載具**
: 對於有成本考量但希望取得較高安全性的公司，會規劃使用在行動載具上安裝行動應用程式產生動態密碼。

**獨立載具**
: 為了追求更高的安全性，使用者也能使用較高成本的方式 —— **獨立載具**，將產生動態密碼所需的金鑰存放於載具內，避免被中間人攻擊或因為行動載具的系統漏洞而被取得金鑰。此外，獨立載具內建電池模組，因此會有壽命和回收的問題；或是使用由外部供電的載具，經由類比鍵盤輸入的方式存取金鑰，但是此種載具和電腦有實體接觸，因此沒有與獨立載具相同的安全性。

* *

## 特色

**優勢**

* 解決使用者在記憶與儲存密碼上的困難；
* 由於密碼只能使用一次，且是動態產生，難以預測，可以大為提升使用的安全程度。

**劣勢**

* 一次性密碼多數需要手機號碼收取簡訊；
* 收取方可能會有延遲或無法收取的問題。

## 參考文獻
动态哈夫曼编码

**適應性霍夫曼編碼**（英語：Adaptive Huffman coding），又稱**動態霍夫曼編碼**（Dynamic Huffman coding），是基於霍夫曼編碼的適自適應編碼技術。它允許在符號正在傳輸時構建代碼，允許一次編碼並適應數據中變化的條件，即隨著數據流的到達，動態地收集和更新符號的概率（頻率）。一遍掃描的好處是使得源程序可以實時編碼，但由於單個丟失會損壞整個代碼，因此它對傳輸錯誤更加敏感。

在霍夫曼編碼中，有個缺點是除了壓縮後的資料外，它還得傳送機率表給解碼端，否則解碼端無法正確地做解碼的工作。如果想要壓縮好一點，必須有更多的統計資料，但同時必須要送出更多的統計資料到解壓縮端。而適應性編碼可以利用已經讀過的資料機動的調整霍夫曼樹。適應性霍夫曼編碼中，演算法 FGK 的基本原則是根據兄弟性質（Sibling Property），由 Gallager 定義。

 

## 兄弟性質

一顆霍夫曼樹只是一棵在每個節點，包括樹葉與內節點，加上加權值的二元樹，除了樹根外，每一個節點都有一個兄弟節點與其共有一個父親節點。如果每一個節點可以按照加權值從小排列到大且每個節點又再自己的兄弟相鄰，稱為兄弟性質。修改、或更新一棵霍夫曼樹包括兩個步驟。第一個步驟是頻率次數的增加，先找到該葉子，把頻率加一，在往上找他的父親節點，也跟著加一，直到樹根皆照著此步驟。第二個步驟是如果增加加權值的動作使得兄弟性質不再滿足時，必須做調整的動作，藉由交換葉子改變頻率增加的順序，同時，交換位置後的父親節點加權值也要跟著更新，以此原則使之再度成為霍夫曼樹。

## FGK 演算法

在演算法 FGK 中，傳輸端與接收端同時動態的去改變霍夫曼樹，最初，解碼樹由單一葉子組成，稱之 0 端。0 端是用來代表未出現過的訊息，當每一個訊息傳遞後，增加此訊息的出現頻率並調整霍夫曼樹保持兄弟性質。當有 t 個訊息傳遞後，之中有 k 個不同的訊息，代表此霍夫曼樹有 k+1 的葉子，k 個葉子有訊息，1 個代表 0 端。當下次傳遞新訊息時，此訊息夾帶未出現過的資訊，0 端的葉子此時分成 2 片葉子，1 片給新訊息，另一片為新的 0 端。

考慮適應性霍夫曼編碼的效能問題，更有效能的方法是確認編碼端不會浪費空間在不存在的符號上，一般的霍夫曼編碼容易做到是因為在建立霍夫曼樹之前，會統計所有的資料，就能先算出各訊息的頻率；相反的，適應性編碼不一樣，並不知資料出現的頻率，因此假設所有訊息長度都一樣是 log\_2⁡q 個位元，伴隨著統計資料的增加，訊息的編碼長度會愈來愈短。但此方法有個缺點，在大部分情況會浪費許多空間，尤其在短訊息的情況，大部分未使用的符號會改變整個統計表，使得壓縮結果大打折扣。

舉例來說，符號源有 256 個符號，一開始的霍夫曼樹就有這 256 個符號，且加權值設為 1，即使連續讀進 16 個 e，也仍然需要四個位元以上來編碼 e，因為其他沒出現的 255 個符號使得霍夫曼樹的調整速度變慢。

解決的方法可以一開始統計表都沒有東西，當訊息被讀進去時在加入到統計表內，假設一開始霍夫曼樹只有兩個符號，兩個符號加權值都是一，且都不改變，一個代表檔案結束，另一個符號較特別，如果辨識的符號，霍夫曼樹已經有了，就像上述正常的操作，如果霍夫曼樹沒出現過，先送出此符號，再送出此符號的 ASCⅡ 碼，最後將這個加入霍夫曼樹，設定加權值為 1，調整霍夫曼樹。這種方法，如過訊息是連續 16 個 e，除了第一個 e 是九個位元，後面的所有 15 個 e 都只需要一個位元表示。

## Vitter 演算法

編碼一樣是用樹狀結構表示，每個支點都有對應的權重及特定數字，數字從上到下、從左到右排列，權重要遵守兄弟性質，如果 A 是 B 的父親且 B 是 C 的父親，則 $W(A)>W(B)>W(C)$ 。

權重用來計算支點編碼及其小孩（底下的支點）的數量，一樣權重的胝點會形成一個區塊，要得到每個支點的編碼，在二進位樹上，傳輸所有從樹根到此支點的路徑，往右走就寫 1，往左走就寫 0。需要有系統且簡單的方式去表示還沒傳遞（NYT），可以使用字母去傳遞二進位數字，編碼跟解碼都是從一個有最大數字的樹根開始，當傳遞 NYT 時，必須傳遞編碼到 NYT 支點，接著是普遍的支點，當每一個符號都完成後，只要傳遞編碼到自己的葉子支點即可。

## 參考來源

* 資料壓縮，戴顯權編著
* Vitter's original paper: J. S. Vitter, "Design and Analysis of Dynamic Huffman Codes", Journal of the ACM, 34 (4), October 1987, pp 825–845.
* J. S. Vitter, "ALGORITHM 673 Dynamic Huffman Coding", ACM Transactions on Mathematical Software, 15 (2), June 1989, pp 158–167. Also appears in Collected Algorithms of ACM.
* Donald E. Knuth, "Dynamic Huffman Coding", Journal of Algorithm, 6 (2), 1985, pp 163-180.
动态图像

**動態圖形**（英語：motion graphics）是數位影片或動畫的一部分，它產生運動或旋轉的錯覺，並通常結合錄音在多媒體專案中使用。它們通常透過電子媒體技術顯示，也可以透過手動的技術顯示（如西洋鏡、費納奇鏡、頻閃、活動視鏡、手翻書）。該術語區別於那些隨著時間的變換外觀的圖形，而沒有指定的形式。

## 範圍

動態圖形超出大多數通常的逐影格畫面和動畫。電腦能計算和隨機變化圖像，來創造運動和轉換的錯覺。電腦動畫可以透過自動補間動畫來節省儲存空間（記憶體）這些主要的影格通常被稱為關鍵影格或低 CP。Adobe Flash 使用自動補間動畫以及逐影格動畫和影片影格。

## 歷史

由於動態圖形沒有被普遍接受的定義，這種藝術形式正式開始是有爭議的。據稱，早在 19 世紀，就出現了可以被歸類為動態圖形的作品。Michael Betancourt 寫了此領域第一個深入的實地調查，主張 20 世紀 20 年代由 Walther Ruttmann、Hans Richter、Viking Eggeling 和 Oskar Fischinger 製作的可視音樂和歷史抽象電影是動態圖形的基礎。

最初使用「動態圖形」一詞的是動畫師約翰・惠特尼他在 1960 年建立了一個名叫「動態圖形」的公司。

索爾・巴斯是電影場片頭發展的一個重要先驅。他的作品包括熱門電影的片頭，如《金臂人》、《迷魂記》、《桃色血案》、《西北偏北》、《驚魂記》和《華府千秋》。他的設計很簡單，但卻有效地傳達了電影的氣氛。

## 電腦生成的動態圖形

術語「動態圖形」起源於計算中的影片編輯，也許是為了跟上新技術的步伐。在電腦被廣泛使用之前，製作動態圖形是昂貴和費時的，限制其只能在高預算的電影和電視製作中使用。在 20 世紀 80 年代末到 90 年代中期，基於英國寬泰的昂貴的專有圖形系統在許多電視台是很常見的。隨著在電腦上產生動態圖形的成本降低，該學科已得到更廣泛的應用。隨著桌面程式的實用化，如 Adobe After Effects、Discreet Combustion 和 Apple Motion, 動態圖形的製作已變得越來越容易。

「動態圖形」一詞被 Trish 和 Chris Meyer 所撰寫的《Creating Motion Graphics》中得到推廣（此書介紹使用 Adobe After Effects）。這是專門用於影片製作的桌面應用程式的開始，但不是編輯或 3D 程式。這種「在中間的」動態圖形及由此產生的動畫風格的概念是它有時被稱作「2.5D」的原因。

動態圖形作為一種藝術形式，並結合掃描攝影機路徑和 3D 元素繼續發展。儘管它們相對複雜，Autodesk Maya 和 3D Studio Max 還是廣泛用於動畫和動態圖形設計。

許多動態圖形動畫師們會根據各方案的優勢學習幾種三維圖形軟體套件。雖然動態圖形往往趨向一個特定的軟體的能力，但軟體只是設計師使用的把願景帶到生活中一種工具。

 

## 粒子系統

最流行的動態圖形工具之一是一個粒子系統 —— 一種動態圖形技術，用於生成多個動畫元素。這種類型的動畫通常被稱為程式動畫。粒子系統可作為一個外掛程式，或一個獨立的應用程式，或作為一個整合的動態圖形包的一部分。

## 動畫

一個動態圖形專案的元素可以透過各種手段實現，取決於軟體的能力。這些元素可能是藝術，文字，相片或影片剪輯的形式。動畫的最普遍的構成是關鍵影格，其中一個物件的屬性可以指定在某個時間點，透過設定一系列的關鍵影格，使該物件的屬性可以自動改變（或漸變）的關鍵影格之間的影格。另一種方法涉及一個行為系統，如 Apple Motion，透過類比自然的力量控制這些變化而不需要更加嚴格而精確的關鍵影格。還有一個方法是使用公式或指令碼。

## 藝術家

* 索爾・巴斯
* Maurice Binder
* 斯坦・布拉哈格
* Kyle Cooper
* Pablo Ferro
* Oskar Fischinger
* Martin Lambie-Nairn
* Len Lye
* Norman McLaren
* MK12

## 另見

* 使用者體驗設計

## 參考資料

* Justin Cone, The History of Motion Graphics, Motionographer.com, February 12, 2013 [4] （頁面存檔備份，存於網際網路檔案館）

## 外部連結

* Creativeleague.com: 運動設計的公司和個人的目錄
* MGFest: The Motion Graphics Festival （頁面存檔備份，存於網際網路檔案館）: 動態圖形放映與教育
* The Mograph Wiki: 由動態圖形專業人士和愛好者維護的 wiki
动态存储器

**動態隨機存取記憶體**（英語：Dynamic random-access memory，縮寫：**DRAM**）是一種半導體記憶體，通常被用作主儲存器，用於儲存運行中的程式和數據。它與靜態隨機存取記憶體（Static random-access memory，SRAM）相比，具有更高的密度和較低的成本。

在 DRAM 中，每個記憶單元由一個電容和一個開關電路組成，主要的作用原理是利用電容內儲存電荷的多寡來代表一個二進位位元（bit）是 1 還是 0。

由於電晶體會有漏電流的現象，導致電容上所儲存的電荷數量並不足以正確的判別資料，進而導致資料毀損。因此對於 DRAM 來說，周期性地充電是一個不可避免的條件。由於這種需要定時重新整理的特性，因此被稱為「動態」記憶體。相對來說，靜態記憶體（SRAM）只要存入資料後，即使不重新整理也不會遺失記憶。

與 SRAM 相比，DRAM 的優勢在於結構簡單 —— 每一個位元的資料都只需一個電容跟一個電晶體來處理，相比之下在 SRAM 上一個位元通常需要六個電晶體。正因這緣故，DRAM 擁有非常高的密度，單位體積的容量較高因此成本較低。但相反的，DRAM 也有存取速度較慢，耗電量較大的缺點。

與大部分的隨機存取記憶體（RAM）一樣，由於存在 DRAM 中的資料會在電力切斷以後很快消失，因此它屬於一種揮發性記憶體（volatile memory）裝置。

動態隨機存取記憶體通常被組織成一系列的記憶體晶片，這些晶片可以通過總線或其他互連技術進行連接。每個記憶體晶片可以包含數百萬到幾十億個記憶單元。由於 DRAM 儲存器需要重新整理操作，因此通常需要使用一些控制電路，例如記憶體控制器或記憶體介面控制器，以管理儲存器操作，如讀取、寫入、重新整理等。

由於動態隨機存取記憶體具有較高的密度和較低的成本，因此它被廣泛應用於個人電腦、伺服器、智慧型手機和其他計算機系統中。但是，由於其重新整理操作和其他諸多因素，動態隨機存取記憶體的效能和可靠性有時會受到影響。因此，在設計和實現計算機系統時，需要考慮適當的記憶體架構和控制策略，以確保高效的運行和穩定性。

## 工作原理

DRAM 通常以一個電容和一個電晶體為一個單元排成二維矩陣，左圖所示是一個 4×4 的矩陣。基本的操作機制分為讀 (Read) 和寫 (Write)，讀的時候先讓 Bitline (BL) 先充電到操作電壓的一半，然後再把電晶體打開讓 BL 和電容產生電荷共享的現象，若內部儲存的值為 1，則 BL 的電壓會被電荷共享抬高到高於操作電壓的一半，反之，若內部儲存的值為 0，則會把 BL 的電壓拉低到低於操作電壓的一半，得到了 BL 的電壓後，再經過放大器來判別出內部的值為 0 和 1。寫的時候會把電晶體打開，若要寫 1 時則把 BL 電壓抬高到操作電壓使電容上儲存著操作電壓，若要寫 0 時則把 BL 降低到 0 伏特使電容內部沒有電荷。

## 相關條目
动态对等

**動態對等**和**形式對等**是由尤金・奈達創造的術語，是指兩種不同的翻譯方法，用來在原文和譯文之間達到不同的直譯程度，如聖經翻譯中所示的。

基本上，動態對等是意譯（翻譯短語或整個句子的意思），以可讀性而目標；形式對等是直譯（直接翻譯短語和單詞的意思），保持字詞的保真度。

## 翻譯方法

形式對等法傾向於強調對原本語言的詞語細節和語法結構的保真度，而動態對等法往往使用更自然的表達方式，但是詞彙準確度較低。

根據尤金・奈達，當初他創造「動態對等」時，他將其定義為「當一個翻譯，其中原本語言的信息被轉移到目標語言，使得目標語言的意思基本上與原本語言一樣時，它就運用了動態對等。」目標是兩者語言的讀者可以以相似的形式理解文本的意思。

晚年，奈達避免使用「動態對等」這個詞，更願意使用「**功能對等**」。「功能對等」的含義是，對等性不只是在原文化的原文和目標文化的目標文本（譯文）之間的功能，但是那個「功能」可以視作文本的一個性質。功能對等可以與人民在文化中的互動方式有聯繫。

近年來，一個新的翻譯方法出現，它由真聖經翻譯（Real Bible Translation，RBT）運用。它採用逆形式對等法，可以被認為是以英語作為「原文」，以古希伯來語的詞彙規律和語素作為「目標語言」，目標是使現代的讀者沉浸於古代的思考模式。

## 聖經翻譯

聖經翻譯採用了各種方法將原文翻譯成英文，從極端的形式對等到極端的動態對等。 

### 主要運用形式對等

* 欽定版聖經（1611 年）
* 楊氏直譯本（1862 年）
* 英語修訂版聖經（1885 年）
* 新美國標準版聖經（1971 年）
* 正教研習本聖經（1993 年）
* 聖經恢復本（1999 年）

### 適度運用形式對等和動態對等（最優對等）

* 聖經新世界譯本（1961 年，1984 年修訂，2013 年）

### 主要運用動態對等或重述，或兩者

* 新國際版聖經（1978 年）
* 新耶路撒冷聖經（1985 年）
* 新生活版英文翻譯本聖經（1996 年）
* NET 聖經（2005 年）

## 參見

* 詞彙標示框架
* 自然後設語義

## 參考文獻
动态库

**動態函式庫**也稱為全域資料庫或工作記憶體，是反映當前問題求解狀態的集合。

## 存放內容

* 系統執行過程中所產生的所有資訊
* 原始資料：
  * 使用者輸入的資訊
  * 推理的中間結果
  * 推理過程的紀錄

## 作用

動態函式庫中由各種事實、命題和關係組成的狀態，既是推理機選用知識的依據，也是解釋機制獲得推理路徑的來源。
动态影像专家小组

**動態影像專家小組**（英語：**M**oving **P**icture **E**xperts **G**roup，簡稱 **MPEG**）為一源自 ISO 與 IEC 等國際組織的工作小組，用以制定影音壓縮及傳輸的規格標準。MPEG 的官方正式命名為 ISO/IEC JTC 1/SC 29/WG 11 – _Coding of moving pictures and audio_ (ISO/IEC Joint Technical Committee 1, Subcommittee 29, Working Group 11)。

## MPEG 相關標準

到目前為止，已有以下和影片相關的標準：

* MPEG-1：第一個官方的視訊音訊壓縮標準，隨後在 Video CD 中被採用，其中的音訊壓縮的第三級（MPEG-1 Layer 3）簡稱 MP3，成為比較流行的音訊壓縮格式。
* MPEG-2：廣播品質的視訊、音訊和傳輸協定。被用於無線數位電視 - ATSC、DVB 以及 ISDB、數字衛星電視（例如 DirecTV）、數字有線電視訊號，以及 DVD 影片光碟技術中。
* MPEG-3：原本目標是為高解析度電視（HDTV）設計，隨後發現 MPEG-2 已足夠 HDTV 應用，故 MPEG-3 的研發便中止。
* MPEG-4：2003 年發布的視訊壓縮標準，主要是擴充 MPEG-1、MPEG-2 等標準以支援視訊／音訊物件（video/audio "objects"）的編碼、3D 內容、低位元率編碼（low bitrate encoding）和數位版權管理（Digital Rights Management），其中第 10 部分由 ISO/IEC 和 ITU-T 聯合發布，稱為 H.264/MPEG-4 Part 10。
* MPEG-7：MPEG-7 並不是一個視訊壓縮標準，它是一個多媒體內容的描述標準。
* MPEG-21：MPEG-21 是一個正在制定中的標準，它的目標是為未來多媒體的應用提供一個完整的平台。

## MPEG 工作原理

MPEG（通常指 MPEG-1）影像編碼是基於變換的失真壓縮。光學訊號線經過採樣形成影片訊號，影片訊號基本的單位叫做影格，一個影格就是一個獨立的圖像，然後影格被分割成小塊做變換編碼，然後量化，最後進行熵編碼。請參見 MPEG-1

MPEG-1、MPEG-2、MPEG-4 實際上採用了的動量估計和動量補償技術。在利用了動量補償的影格（圖像）中，被編碼的是經過動量補償的參考影格與目前圖像的差。與傳統影像編碼技術不同，MPEG 並不是每格影像進行壓縮，而是以一秒時段作為單位，將時段內的每一格影像做比較，由於一般影片內容都是背景變化小、主體變化大，MPEG 技術就應用這個特點，以一幅影像為主圖，其餘影像格只記錄參考資料及變化資料，更有效記錄動態影像。從 MPEG-1 到 MPEG-4，其核心技術仍然離不開這個原理，之間的分別主要在於比較的過程和分析的複雜性等。

MPEG 只規定位元流的格式與解碼精確度（即規定解碼的方法），而任何人可依照 MPEG 標準以不同方式實現編碼器（程式）。除了可減少因編碼專利造成的商業利益糾紛外，MPEG 標準的主要目的在於確保不同的編碼器所產生的位元流可被其他解碼器正確的解碼，只要此位元流符合標準。

## 參見

* 影像編碼器
* 影像編碼器
* 影像壓縮
* JPEG

## 參考文獻

## 外部連結

* MPEG Pointers & Resources
动态心电图

**動態心電圖**（英語：Holter monitor，即「霍特監測器」）是一種動態心電圖設備，是可攜式的心臟監測設備，可以記錄 24 小時內的心臟電傳導系統資訊（一般一次至少會記錄二星期）。

動態心電圖最常見的用途是監控心臟活動（心電圖）。其延長的記錄時間可以觀測偶發性的心律不整，這是短時間的監控難以識別的。若患者有較多短暫症狀，可以使用可穿載一個月以上的心臟事件監測器。

動態心電圖是蒙大拿州海倫娜的霍特研究實驗室中的實驗物理學家諾曼・霍特和和比爾・格拉斯科克（Bill Glasscock）所研發，他們在 1949 年開始研究無線電遙測。因為心臟學家 Paul Dudley White 的建議，他們將其研究轉向可穿載式的心臟監測設備。動態心電圖在 1962 年開始商業生產。

在使用動態心電圖來研究心臟時，其作法類似一般標準的心電圖量測。動態心電圖是透過許多接到胸部的電極來記錄心臟的電訊號。電極會放在骨頭的位置，以減少因為肌肉運動造成的假影。電極的數量和位置依動態心電圖的型號而不同，大部份的動態心電圖會使用三個至八個不等的電極。電極再連接到患者皮帶上或是頸上的一個小裝置，在監控時間記錄心臟電傳導系統的資訊。

## 參考文獻
动态数据交换

**動態資料交換**（Dynamic Data Exchange，簡稱 DDE），是一種在 Microsoft Windows 或 OS/2 作業系統中運作行程間通訊的技術。最早於 1987 年推出的 Windows 2.0 使用，它可以用來協調作業系統的應用程式之間的資料交換及命令呼叫，有點類似於 SUN 公司的遠端程序呼叫（Remote Procedure Call，RPC）。DDE 主要傳遞的數據流通常是不需要使用者經常干涉的，它所提供的是一種更整合的工作環境。DDE 可以允許 Windows 應用程式共享資料，例如，Microsoft Excel（電子試算表）中的儲存格在另一個掛載的應用程式中的數值發生改變時，Excel 會自動做出更新。

## 歷史沿革

## 概論

## NetDDE

```
/Windows/SYSTEM32
**DDESHARE**.EXE _(DDE Share Manager)_
**NDDEAPIR**.EXE _(NDDEAPI Server Side)_
**NDDENB32**.DLL _(Network DDE NetBIOS Interface)_
**NETDDE**.EXE _(Network DDE - DDE Communication)_
```

## 參考

## 參考文獻

## 外部連接

* MSDN: About Dynamic Data Exchange (DDE) （頁面存檔備份，存於網際網路檔案館）
* NetDDE （頁面存檔備份，存於網際網路檔案館）
* Clojure Bindings for DDE, for use in Clojure or Java Applications （頁面存檔備份，存於網際網路檔案館）
* 空白 Word 暗藏木馬 - iThome （頁面存檔備份，存於網際網路檔案館）
动态数组

**可變長陣列**是指在電腦程式設計中，陣列物件的長度在執行時（而不是編譯時）確定。

支援可變長陣列的程式設計語言有：Ada, Algol 68 (for non-flexible rows), APL, C99 (以及 C11) ，C# , COBOL, Fortran 90, J。

C/C++ 的靈活陣列類型（又稱柔性陣列成員）是另外一個語言特性。

## 語言細節

### C99

下述 C99 函式內部建立了一個可變長陣列的局部變數。因為該陣列被聲明為一個局部變數，所以它會在 `read_and_process` 函式返回時自動銷毀。

在 C99 中，進行函式呼叫時，變長陣列的長度必須在變長陣列本身之前進行傳入。在 C11 中，如果編譯器不支援 VLA（變長陣列）的話，編譯器本身會定義一個叫做 `__STDC_NO_VLA__` 的宏。在 C99 之前，GCC 就已經把 VLA 作為一個有用的擴充了。

但是 Linus Torvalds 表達了對可以預見長度的小陣列仍然使用 VLA（變長陣列）的情況不太滿意，並寫了一個注釋如下：「USING VLA'S IS ACTIVELY STUPID! It generates much more code, and much _slower_ code (and more fragile code), than just using a fixed key size would have done.」(我認為相較於只使用一個預先定義好的、可事後修復的量，使用變長陣列的方法很笨，因為它會生成更多的機器碼，更慢的代碼，而且相對而言更加地不可維護）。作為回應，Linux kernel 專案從頭到尾都沒有使用過一處 VLA（變長陣列）。

### C++

C++0x 標準不支援變長陣列。

但是作為一個有用的擴充，g++ 和 clang++ 對 VLA 做了一些支援（但請注意，它並不是標準化的一部分）。

作為替代，建議使用 C++ 標準下的 STL 容器 std::vector，或者使用 new 和 delete [] 來動態地為陣列分配記憶體。

### 其他

同樣的功能用 Ada 表示：

等價的 Fortran 90 函式：

COBOL 代碼片段：

C# 函式：

## 參考文獻
动态无功补偿器

**靜態無功補償器**（Static VAR compensator，SVC）又稱**動態無功補償器**，是一組能在高壓電輸電系統網絡上連續、快速動態調節無功功率的電氣設備。 此外它還能調節電壓、功率因數。 

## 參考文獻
动态时序验证

**動態時序驗證**（英語：**Dynamic timing verification**）是指對特殊應用積體電路的一種驗證過程，它被用來檢查電路是否能夠以足夠快的速率在指定的時鐘頻率下正常。將用於積體電路綜合過程的設計文件進行仿真，動態時序驗證得以進行。該過程與靜態時序分析相對應，後者與動態時序驗證有著相似的目標，但是它並不需要對積體電路的實際功能進行仿真。

## 參考文獻
动态时钟频率调整

**動態時鐘頻率調整（Dynamic frequency scaling）** （也被稱作是 **CPU 節流（CPU throttling）** ）是一個用來使微控制器的頻率可以自動適應需要進行調節，從而讓 CPU 降低功耗，降低發熱的技術。它屬於計算機體系結構的範疇。

動態時鐘頻率調整幾乎總是與動態電壓調整一起出現，是因為較高的頻率需要較高的電壓，數字電路才能產生正確的結果。 它們組合的討論話題被稱為**動態電壓和頻率調整（Dynamic voltage and frequency scaling (DVFS)）** 。

自動頻率調節通常被用在諸如手提電腦或者其它行動裝置這樣需要用電池供電並且電量有限的設備上，以降低 CPU 功耗，延長設備續航時間。它同樣也被應用到需要安靜的計算設備或者為低負荷的機器減少能量消耗、減少冷卻成本。更少的熱量產生可以讓系統的風扇少工作或不工作，可以減少噪音，進一步減少電能消耗。 它還用於當溫度上升到某個閾值時對欠冷卻的系統減少熱量。比如散熱很差的超頻過的系統。

## 參見

* Intel SpeedStep
* Intel Turbo Boost
* AMD Cool'n'Quiet
* AMD Turbo Core
动态服务网页

**動態伺服器網頁**（英文：**A**ctive **S**erver **P**ages，簡稱 **ASP**），是由微軟公司開發的伺服器端執行的指令碼平台，它被 Windows 下 Internet Information Services (IIS) 的程式所管理。透過 ActiveX server 的技術讓不同的使用者能有不同的畫面，或需要讓他們可以存取伺服器（server）上的資料時，使用 ASP3.0 中提供了五個內建的物件建立類比和安全性的動態內容，來協助程式設計師隱藏複雜的溝通機制，讓程式設計師可以專注在解決問題和應用之上，這樣可以更快速地開發動態網頁的同時每一個組件都是可以由一組富有經驗的程式設計師根據動態網頁最常用的功能而獨立開發。

## ASP 的特色

ASP 隱藏了網頁伺服器與瀏覽者之間溝通的繁瑣機制的同時也基於 script base 的特性，網頁撰寫員可以專心撰寫應用的程式的邏輯部份，再者 ASP 也像 HTML 般透過撰寫程式來即時測試網頁是否安全地運行，而不必擔心程式和伺服器不能溝通的問題，另外因為那些 script 是於發送前於伺服器中先行轉譯處理成為 HTML 後再而發送至代理伺服器邊的動態網頁技術，不必擔心瀏覽器的支援性，以及網頁撰寫員的程式邏輯像 client-side script 會被盜用，因此最終瀏覽者只會是使用 HTML 來瀏覽。

利用 ASP 程式最常用的是 Cookies，它利用 Session 組件實現的。同時還可以利用第三方組件延伸 ASP 的作用，如利用 MailSender 組件傳送電子郵件。

通過 ASP，可以結合 HTML 網頁、ASP 指令和 ActiveX 元件建立動態、互動且高效的 WEB 伺服器應用程式。同時，ASP 也支援 VBScript 和 JScript 等手稿語言，預設為 VBScript，而其中 JScript 是微軟公司的 ECMAScript 標準的實現，並且有自己的擴充。

### 五個內建組件

* Application：在一個 ASP-based application 讓不同使用者共享資訊。
* Request：從使用者處理取得資訊
* Response：將資訊送給使用者
* Server：提供一些 Web Server 的工具
* Session：儲存在一個 session 內使用者的資訊

### 物件的支援

ASP 對 COM 的支援會允許撰寫員使用 server component（或 OLE Automation server）。透過它撰寫員可以發展自己的物件，或將把程式轉成 Web-base 的介面。

* 透過 ADO 提供對於資料庫的應用。
* 透過 ActiveX 的 Scripting.FileSystemObject 提供對於檔案的操作。

### Session 的管理

ASP 在 Server 端 Respondse 時會經由 HTTP 的 **Set-Cookie** 的 header 欄位傳送名為 **ASPSESSIONID** 的 Session ID。而使用者端的瀏覽器在收到這個 Session ID 之後，會在下次的 Request 時，經由 HTTP 的 **Cookie** 的 header 欄位再把這個 Session ID 傳給 Server，藉以讓 Server 區分是同一個瀏覽者，以獲得其專用的 Session 變數存取。這個機制可應用於帳號登入，在 Session TimeOut 被清除之前，只要瀏覽者沒關閉瀏覽器，就能持續保持帳號登入的狀態・

此外，ASP 可以經由檔案 Global.asa 裡的兩個事件處理（Session\_OnStart 與 Session\_OnEnd）去控制該瀏覽者 Session 的建立與結束的額外處理。這可以用來作為統計實際線上人數之用。

## 版本

ASP 目前最新的版本為 3.0，與 Windows 2000 一起發行，並內植於 IIS 5.0 中。

* ASP 1.0 內含於 Windows NT 4.0 Service Pack 3（IIS 3.0）發行。
* ASP 2.0 內含於 Windows NT 4.0 Option Pack，與 IIS 4.0 一起亮相。

自 ASP 3.0 發行後，除了各版本對它的安全性或問題修補外，對主要功能都沒有再進一步的更新。
Windows Server 2003 發行的 ASP 也是 3.0 版本。

其後繼者 ASP+（即 ASP.NET），已內含於.NET Framework 中持續演化。

## 原理

ASP 是經過伺服器解析之後再向網頁瀏覽器返回資料，所以有了 ASP 就不必擔心客戶的瀏覽器是否能執行你所編寫的代碼。因為所有的程式都將在網頁伺服器端執行，包括所有嵌在普通 HTML 中的指令碼程式。當程式執行完畢後，伺服器僅將執行的結果返回給客戶瀏覽器，這樣也就減輕了客戶端瀏覽器的負擔，大大提高了互動的速度。

由於代碼是需要經過伺服器執行之後才向瀏覽器傳送的，所以在客戶端看到的只能是經過解析之後的資料，而無法獲得原始碼，故編寫者不用擔心自己的原始碼會被別人剽竊。但不排除駭客利用系統漏洞竊取伺服器端的 ASP 原始碼。

基於這樣的解析方式，也導致執行 ASP 頁面相對於普通的 HTML 頁面要慢一點。因為普通的 HTML 頁面只需要瀏覽器就能夠解析，而 ASP 則必須是伺服器將整頁的代碼都執行一遍之後再傳送資料。

ASP 提供與資料庫的互動，如 Microsoft SQL Server、Microsoft Access、MySQL 和 Oracle，比較流行的是 ASP 和 Microsoft SQL Server 的組合。

## 範例

ASP 程式（包括與資料庫連線的部分）都是嵌入在普通 HTML 和其他客戶端語言中的。例如

ASP 語言是嵌入在「<%...%>」之間的部分。而這個程式最終結果將是:

## 參見

* Microsoft FrontPage
* Visual InterDev
* ASP.NET
* .NET 框架
* PHP
* JSP

## 外部連結

* ASP on MSDN（頁面存檔備份，存於網際網路檔案館）
* 如何從動態伺服器網頁（Active Server Page）模擬使用者（頁面存檔備份，存於網際網路檔案館）

**應用或比較**

* asp 實踐經驗記錄
* Active Server Pages 是什麼？（頁面存檔備份，存於網際網路檔案館）
* ASP.NET 與 ASP 的差異

**替代產物**

* ArrowHead ASP Server（將 ASP 轉移到 Java 的平台下去類比 ASP 的運作）
* Cloudfoundry ASP
* Apache::ASP（頁面存檔備份，存於網際網路檔案館）（在 Apache 上加上 Perl 支援後去跑名為 ASP 的網頁）
动态漫游号

**動態漫遊號**（英語：Mobile Station Roaming Number，MSRN）是一個 E.214 協議定義的一個關於行動電話號碼的歸屬地代碼，用於從 GMSC（移動交換中心網關）提取目標 MSC（移動交換中心）的信息。它也可以被認為是一個臨時分配給移動終端的查詢號碼，用於在呼叫過程中尋找移動終端。MSRN 被分配給每一個通話中的移動終端，不僅限於不同 MSC 間漫遊的通話終端，還包含未漫遊的移動終端。
动态潮汐能

**動態潮汐能**或 **DTP** 是最新的潮汐能發電技術。它涉及到建立大型水壩型建築物，從海岸一直延伸到海洋並在遠端建立垂直的屏障，形成一個龐大的『T' 形。

這個 T 型長壩干擾與海岸平行振盪的沿大陸架海岸的潮汐波，含有強大的落差流（常見於_例如_ 中國，韓國和英國）。

這個概念是 1997 年由荷蘭海岸工程師 Kees Hulsbergen 和 Rob Steijn 發明並獲得專利的。

## 描述

動態潮汐能大壩（DTP）是一種全新且尚未實踐過的潮汐發電技術。工程主體是一個至少長為 30 公里，垂直於海岸的大壩。在大壩深入海洋的一段還可建設橫壩，最終形成巨大的「T」型。DTP 大壩通過干擾海浪運動，從而在壩體的兩端形成水位差，並且推動壩體內的雙向渦輪機進行發電。在中國，朝鮮和英國的海岸線上，這種沿大陸架運動，而且能夠產生巨大水流的潮波十分常見。

## 優點

一個大壩的裝機容量能達到 8000 兆瓦以上，對年預估發電 230 億千瓦時 (83PJ 每年) 的大壩，生產能力利用率達 30%。 例如，一個歐洲人平均每年消耗約 6800 千瓦時，因此一個 DTP 大壩可以為約 340 萬歐洲人提供能源。 若正確安裝兩大壩間的距離（相隔約 200 公里），兩者可平衡各自的輸出量從而相互補足（一個壩完全輸出時，另一個不發電）。和傳統的潮汐壩相比較，由於不被沿海區包圍，T 型動態潮汐能壩大大減少了對社會和環境的影響。動態潮汐發電不需要很高的天然潮位變幅，因此有更多的地點可供使用。其總體可用性在有適當條件的國家很高，如韓國、中國和英國（中國的總體可用性估計達 8–15 萬兆瓦）。

## 技術發展

儘管建設大壩的所有所需技術已經可以實現，DTP 大壩還從未被建成過。已有多種數學和物理模型對動態潮汐能壩的『水頭 ' 或水位差進行了模擬。在大型工程項目中，潮汐和長壩間的交互作用已經被觀察和記錄下來，如荷蘭的三角洲工程和 Afsluitdijk 。眾所周知潮汐流和自然形成的半島間的相互作用，這些數據也被用於矯正潮汐的數值模型。計算附加質量的公式被應用於開發 DTP 的分析模型。觀測到的水位差與當前的分析數字模型緊密匹配。 預測由 DTP 大壩產生的水位差現在可以達到有效的精確度。

所需的關鍵要素包括：

* 低水頭高容量雙向水輪機（能夠雙向發電）。 操作運轉部件存在海水環境的應用程式，效能超過 75%。
* 大壩建設方法可以通過模塊化流動沉箱（混凝土砌塊）來實現。這些沉箱會先在岸上製造好，並隨後漂浮到大壩的位置。

## 挑戰

一個主要的挑戰是，示範工程幾乎無法發電，即使是 1 公里左右長的大壩，因為發電量隨大壩長度的平方增長（水頭和體積兩者都隨大壩長度的增加多多少少呈線性增長趨勢，導致發電量以平方次增長）。預計當大壩長度達到 30 公里時才可實現經濟可行性。
其他關注點包括：海運航線，海洋生態，沉積物和風暴潮。

## 另請參閱

* 海洋能源
* 潮汐能

## 參考文獻
动态电压调节

**動態電壓調節**（英語：**dynamic voltage scaling**）是計算機系統結構中的一種電源管理技術，它可以根據處理器實時的使用狀況，提高或降低電源電壓。由於電路的功耗與電源電壓存在平方的關係，因此在系統閒置或低速運行時，降低電源電壓可以大大降低電路的功耗。

## 參考文獻

* J. M. Rabaey. Digital Integrated Circuits. Prentice Hall. 1996.
动态神格唯一论

**嗣子說**（英語：Adoptionism），又譯**嗣子論**、**義子說**、**義子論**、**養子說**、**養子論**、**養嗣主義**、**收養主義**，基督教術語，早期教會中對於耶穌神性的一種見解。這派認為，耶穌完全是一個人類，並不是神。他們以「收養」來比喻耶穌與上帝耶和華之間的關係。

伊便尼派認為，在耶穌接受施洗者約翰的洗禮時，上帝因耶穌具備公義的精神與無私的奉獻，才選擇耶穌擔任他的先知與義子。由拜占庭的狄奧多圖斯發展出的觀點，認為耶穌原本為普通人類，復活之後才擁有神性，因此也被稱為**動態神格唯一論**（dynamic monarchianism）。

這個學說是一位神論，主張上帝獨一無二，而且高於耶穌，否認耶穌的神性。鐵徒良將它歸屬在神格惟一論之下。在第一次尼西亞公會議之後，被正統教會認定為異端。這個神學主張後來影響到穆罕默德對耶穌的看法。

嗣子說（Adoptionism）是基督教早期一種有爭議的教義，認為耶穌不是神的兒子，而是在他的洗禮時被神所領受，從而被神所領受為神的兒子。因此，這種觀點被稱為嗣子說。

在嗣子說中，耶穌被視為一位先知，由於他的品行和教導而被神所喜悅和接納，從而被神所領受為神的兒子。這種觀點與正統基督教教義中的三位一體論和耶穌基督的神性不符，因此在教會中引起了激烈的爭議。

在不同的神學家中，對嗣子說的看法存在差異。一些早期的神學家，如亞流（Arius）和盎格魯 - 撒克遜人修士埃爾弗里德（Alcuin），支持嗣子說，認為耶穌是在他的洗禮時被神所領受為神的兒子。

然而，大多數教會和神學家反對嗣子說，認為這種觀點否認了耶穌的神性和三位一體論，從而違反了正統基督教的教義。在 7 世紀，教宗瑪爾定一世將嗣子說定為異端教義，並在 680 年的第三次君士坦丁堡大公會議上進一步確認了這一決定。

## 歷史

嗣子說在基督教史上的起源很早，可能可以上追到耶穌時代。學者巴特・葉爾曼認為，在《舊約》的《詩篇》中就有類似的觀念。《馬可福音》第一章第一節：「神的兒子耶穌基督，福音的起頭。」在許多古代抄本中，並沒有這段話，如果把這一段取消，《馬可福音》一直到耶穌受洗後，才稱他為神之子，巴特・葉爾曼認為，這反映了《馬可福音》的作者也採取嗣子說的立場。另一個採取嗣子說的福音書，為《希伯來福音書》。但是這些傾向嗣子說的福音書片斷，大部份在後世都被削除了。

在保羅書信中，保羅從未明確提及瑪利亞處女懷胎的事蹟，有些片段可能也反映了嗣子說的思想。如《加拉太書》中說，耶穌是由婦人所生，在律法中所生；《與羅馬人書》說，耶穌的肉體是由大衛後裔生的。在《希伯來書》中也有類似段落。

**不過，保羅承認主耶穌完全真實的人性 的經文，並不意味著他也否認耶穌作為聖子而言的永恆神性，不能作為他支持嗣子說的依據。聖子基督耶穌道成肉身所取的人性，與他永恆神性共享一位格，這被正統信仰稱為「一位格（神人）二屬性」，確證了基督原本的神性。保羅書信中承認耶穌神性的相關經文有許多** **。這是「大哉，敬虔的奧祕，無人不以為然！就是神在肉身顯現⋯⋯」（提前** 3:16**），而不是肉身成道。**

現存四福音中，《約翰福音》明確反對了嗣子說。

二世紀時，拜占庭的狄奧多圖斯是第一個被記錄下來，提出嗣子論的基督教作家。他主張，耶穌在出生時是凡夫，通過洗禮，被上帝領養，但是一直到他復活之後，才成為神。鐵徒良稱他的觀點為動態神格唯一論。

第一次尼西亞公會議上，正統教會採取了三位一體論，嗣子論被列為異端。

## 伊斯蘭教

伊斯蘭教的《可蘭經》採用**嗣子說**來解釋耶穌的角色，穆斯林認為耶穌是個神聖的先知，但不是神之子。

## 文藝作品

音樂劇《萬世巨星》即採取嗣子說觀點詮釋耶穌。

## 相關條目

* 面具說
* 幻影說
* 一位神論

## 參考文獻
动态系统

**動態系統**（dynamical system）是數學上的一個概念。動態系統是一種固定的規則，它描述一個給定空間（如某個物理系統的狀態空間）中所有點隨時間的變化情況。例如描述鐘擺晃動、管道中水的流動，或者湖中每年春季魚類的數量，凡此等等的數學模型都是動態系統。

在動態系統中有所謂**狀態**的概念，狀態是一組可以被確定下來的實數。這組實數也是一種流形的幾何空間坐標。動態系統的演化規則是一組函數的固定規律，它描述未來狀態如何依賴於當前狀態的。這種規則是確定性的，即對於給定的時間間隔內，從現在的狀態只能演化出一個未來的狀態。

若只是在一系列不連續的時間點考察系統的狀態，則這個動態系統為**離散動態系統**；若時間連續，就得到一個**連續動態系統**。如果系統以一種連續可微的方式依賴於時間，我們就稱它為一個**光滑動態系統**。

## 歷史

許多人視法國數學家及物理學家龐加萊為動態系統的創始者。他發行了兩份現在被譽為經典的專著：天體力學的新方法《天體力學的新方法》（New Methods of Celestial Mechanics，1892–1899）、《天體力學講義》（Lectures on Celestial Mechanics，1905–1910）。專著中，他成功將研究結果應用在三體問題，並詳細研究其狀態（頻率，穩定性等）。作品中也包含龐加萊復現定理（Poincaré recurrence theorem），該定理指出某些系統在經過足夠長但有限的時間之後，將返回到非常接近初始狀態的狀態。

俄羅斯數學家李亞普諾夫發展許多重要的近似方法。他在 1899 年發展出的方法，使得定義常微分方程組的穩定性是可行的。 他也創造了動態系統穩定性的現代理論。

美國數學家伯克霍夫在 1913 年證明了龐加萊的最終幾何定理（Last Geometric Theorem），一個三體問題的特殊形況。在 1927 年，他則發行了《動態系統》（_Dynamical Systems_）。在 1931 年，伯克霍夫發現了最使他名留青史的結果，現在稱作遍歷定理。

美國數學家斯梅爾也對動態系統作出重大貢獻。他的貢獻馬蹄映射推動了動態系統重要研究，此外他還勾劃出研究計劃，讓很多研究者實行。

烏克蘭數學家亞歷山大・沙可夫斯基在 1964 年給出關於離散動力系統的沙可夫斯基定理，此定理的一個含義是，如果實數軸上的離散動態系統具有週期為 3 的週期點，那麼它必定具有任意週期的週期點。

## 註釋

## 參考書籍

## 延伸閱讀

## 參見

* 混沌理論
* 洛倫茲系統
* 複變動態系統
* 線性動態系統

## 外部連結

* 動態系統介紹 （頁面存檔備份，存於網際網路檔案館）
* Dynamical systems at SUNY：紐約州立大學石溪校區研究小組的網站，有會議、研究者和未解決問題等資料（英）
* Oliver Knill（頁面存檔備份，存於網際網路檔案館）：以 JavaScript 說明一些動態系統的例子（英）
* Arxiv preprint server（頁面存檔備份，存於網際網路檔案館）：關於此範疇每日的新論文（英）
* Chaos @ UMD（頁面存檔備份，存於網際網路檔案館）：主攻應用層面（英）
* 動態系統的穩定性分析
动态经济学

**動態經濟學**是針對於_時間路徑_上的變化進行的經濟學理論研究。動態經濟學是相對於靜態經濟學而言的。

變化可能產生於外生變量，也可能產生於經濟內各主體的行為，具體地說是，個人、廠商、以及政府對於觀察到的不均衡所作的反應。

動態經濟學同時也考慮對於某個經濟，通過什麼方法以及以什麼速度接近新的均衡。

## 參見

* 靜態經濟學
* 景氣波動理論
* 物價膨脹理論
* 經濟成長理論

## 數學方法

* 變分法
* 最優控制理論
* 動態規劃法

## 參考資料

* dynamics 條目，<牛津經濟學詞典> 上海外語教育出版社，2000。
动态编程语言

**動態程式語言**是高階程式語言的一個類別，在電腦科學領域已被廣泛應用。它是一類在執行時可以改變其結構的語言：例如新的函式、物件、甚至代碼可以被引進，已有的函式可以被刪除或是其他結構上的變化。動態語言目前非常具有活力。眾所周知的 ECMAScript（JavaScript）便是一個動態語言，除此之外如 PHP、Ruby、Python 等也都屬於動態語言，而 C、C++、Java 等語言則不屬於動態語言。

大部分動態語言都使用動態型別，但也有些不是。

## 實現

動態語言可能包含的特徵有：eval 函式、物件執行時間改變、反射和宏。

### 物件執行時間改變

在動態語言中類型或物件系統典型的是可以改變的。這意味著可以從執行時間定義或基於現存類型或物件的 mixin 來生成新物件。這還可以用來稱謂變更繼承或類型樹，從而改變了現存型別系統表現的方式（特別是關於方法呼叫）。

### Eval

一些動態語言提供 eval 函式。這個函式接受包含這個語言寫的代碼的一個字串形式參數並執行它。如果這個代碼表示了一個表達式，則返回它的結果值。Erik Meijer 和 Peter Drayton 聲稱可以：「使用 eval 作為高階函式的窮人替代品」。

### 反射

反射常見於很多動態語言中，典型的涉及到類型和泛化或類型多型資料的元資料的內省。但是它還可以包括將程式碼作為資料的完全求值和修改，比如 Lisp 的分析 S - 表達式的那種特徵。

### 宏

有限數目的動態語言提供一種叫做宏的特徵，用來組合代碼內省（檢查類、函式和關鍵字，知道它們是什麼、幹什麼、知道什麼）和 eval。多數現在的程式設計師是從 C 或 C++ 中知道這個術語的，在這裡它們是建造入語言的小子集中的一種靜態特徵，只有在程式的文字上進行字串替換的能力。在動態語言中，它們提供對編譯器的內部工作的存取，和對直譯器、虛擬機器或執行時系統的完全存取，允許定義可以最佳化代碼或修改語言的語法或文法的類似語言的構造。

## 例子代碼

下列代碼使用 Common Lisp 和它的 Common Lisp 物件系統（CLOS）展示語言的動態特徵，具體採用的實現是 SBCL。

### 代碼在執行時間算得和後期繫結

這個例子展示函式可以在執行時間從原始碼進行修改：

### 物件執行時間改變

這個例子展示，現存的實例在它的類變更時可以被變更來包括一個新槽，還有現存的方法可以被替代為新版本：

### 基於實例的類的代碼在執行時間組裝

在下列例子中，類 `person` 得到一個新超類。`print` 方法得到重新定義，它組裝了多個方法成為有效（effective）方法。基於實際參數的類和執行時間可獲得和適用的方法，有效方法得以組裝：

## 語言

## 參見

* 手稿語言

## 參照

## 延伸閱讀

* Tratt, Laurence. Dynamically Typed Languages. Advances in Computers **77**. 2009: 149–184 [2021-04-07]. ISBN 9780123748126. doi:10.1016/s0065-2458(09)01205-4. （原始內容存檔於 2021-04-29）.

## 外部連結

* Prechelt, Lutz. Are Scripting Languages Any Good? A Validation of Perl, Python, Rexx, and Tcl against C, C++, and Java (PDF). Advances in Computers. 2002-08-18, **57**: 205–270 [2020-07-27]. ISSN 0065-2458. doi:10.1016/S0065-2458(03)57005-X. （原始內容存檔 (PDF) 於 2021-04-14）.
* Bezroukov, Nikolai. A Slightly Skeptical View on Scripting Languages. Softpanorama 2.1. 2013 [2020-07-27]. （原始內容存檔於 2009-03-29）.
* Wall, Larry. Programming is Hard, Let's Go Scripting... (Speech). State of the Onion 11. Perl.com. 2007-12-06 [2020-07-27]. （原始內容存檔於 2017-07-28）.
* Roth, Gregor. Scripting on the Java platform. JavaWorld. 2007-11-20 [2020-07-27]. （原始內容存檔於 2020-07-27）.
* Ousterhout, John K. Scripting: Higher-Level Programming for the 21st Century (PDF). Computer. Vol. 31 no. 3. March 1998: 23–30 [2020-07-27]. ISSN 0018-9162. doi:10.1109/2.660187. （原始內容 (PDF) 存檔於 2020-07-27）.
* ActiveState Announces Focus on Dynamic Languages. ActiveState. 2004-07-26 [2020-07-27]. （原始內容存檔於 2020-07-27）. 
  * Ascher, David. Dynamic Languages — ready for the next challenges, by design (PDF). Whitepapers. ActiveState. 2004-07-27. （原始內容 (PDF) 存檔於 2008-11-18）.
  * Ascher, David. Dynamic Languages — ready for the next challenges, by design. Whitepapers. ActiveState. 2004-07-27. （原始內容存檔於 2008-12-08）.
动态网

**自由門**（英語：Freegate）是主要成員為法輪功學員的全球網路自由聯盟及動態網際網路技術公司（Dynamic Internet Technology, Inc.）聯合開發的一種破網軟體，一般用來突破中華人民共和國政府建立的防火長城以瀏覽被當局封鎖的網站或收發郵件。除了中國大陸，在伊朗、敘利亞、阿聯等含有網際網路審查的國家中也有很多使用者使用該軟體存取被其政府封鎖的網站。

## 歷史

### 成立

2001 年，美國非盈利組織全球網路自由聯盟成立，動態網即是此聯盟於 2002 年 3 月建立，主要成員為法輪功學員，創立的初衷為突破中華人民共和國政府對法輪功資訊的封鎖，該聯盟主要從事突破網路封鎖軟體的開發，主要軟體有自由門、逍遙遊、動網通等多款。

### 其他國家

據美國國會參議院 2011 年 2 月 15 日公布的報告顯示，埃及、敘利亞、伊朗、沙烏地阿拉伯、緬甸和越南等國民眾使用自由門和無界網路等軟體以翻越自己國家的網際網路審查。

## 特點

自由門的設計對使用者盡可能簡單透明。使用者可以將一個小型應用程式的軟體下載到計算機或行動裝置。安裝完畢後，自由門允許使用者存取該動態網，而不必經常搜尋未被封殺的伺服器。自由門採用了一系列的加密，但無法保證隱私。DIT 估計，自由門的使用者分佈在幾十個國家，但自由門的設計和支援最初是幫助兩個特定的國家 —— 中國和伊朗 —— 的使用者繞過政府檢查。有興趣衝破中國的「防火長城」和伊朗大範圍網控的使用者，自由門可以提供幫助。例如，中國使用者存取 Google，搜尋「天安門」將很難獲得結果。相比之下，如果在瑞典登訪 Google，情況就不一樣。這是因為中國過濾和監控進出中國的網路流通。通過使用自由門代理伺服器，中國使用者可以有效地隱瞞身分和所在的地點，從而繞過防火牆。

自由門能在 Windows 系統中執行，並且可以通過 Wine 軟體在 Linux 和 Mac 作業系統執行。自由門有代理控制功能，使用者可以選擇讓所有網站通過自由門存取，也可以使部分網站不通過自由門存取（黑名單），或者只允許部分網站通過自由門存取（白名單）。

## 缺陷

自由門還是有缺陷。雖然動態網採用先進技術不斷變換代理伺服器和鏡像站點，自由門的規模仍然有限。此外，動態網大部分鏡像站點都設在台灣或美國。因為中華人民共和國政府知道伺服器的具體地理位置，所以可以輕易進行封鎖。還有，已經發生了好幾起冒牌自由門的惡意軟體，而不是根據傳送協定的翻牆軟體，被下載安裝在使用者計算機上。由於動態網發布了許多不同版本的自由門，這可能會給使用者造成混亂： 他們無法知道並確信使用的版本是否貨真價實。

## 相關事件

### 惡意軟體報告

2004 年，《金融時報》引述賽門鐵克在中國大陸的員工的報告，指出諾頓防毒會將自由門視為特洛伊木馬軟體。有人擔心這可能是中國政府鼓勵從電腦中刪除特定軟體的伎倆。賽門鐵克解釋說，這是因為自由門有與木馬有類似的行為，即使用代理穿透防火牆。之後賽門鐵克修改了木馬的檢測方法以排除自由門。

央視網 2012 年發布了一封報導，該報導認為自由門和無界等翻牆軟體是病毒。此外，中國大陸媒體新浪網 2008 年曾轉載 IT168 網站的文章指出，類似自由門的代理軟體，可能被一些企業員工用於突破公司內部的防火牆，被用來洩漏企業機密。

有報導指出，2013 年敘利亞的親政府人員向反叛分子傳送訊息，鼓勵他們下載一個名為「Freegate」的檔案，並稱該檔案旨在幫助持不同政見者規避國家監管機構。但實際上它是一個惡意軟體，使得入侵者能夠監視受害者在他們的電腦上輸入的內容，讀取或刪除受害者的檔案。

2013 年 8 月，自由門測試了一套新的代理程式，這被一些人視為釣魚式攻擊：來自伊朗的報告指出當伊朗使用者使用自由門突破網路封鎖存取 Facebook 的時候，進入的不是 Facebook 首頁，而是一個虛假的頁面。自由門方面指出這是他們在測試一套新的代理程式，假頁面是隧道。資訊科技專家警告使用者小心隧道鏈路，因為它不使用傳輸層安全協定，所以使用者的資訊是未經加密的。

## 參見

* 防火長城
* 突破網路審查

## 參考文獻

## 外部連結

* 官方網站

 本文全部或部分內容來自美國聯邦政府所屬的**美國之音**網站。根據著作權條款（英文）和有關美國政府作品著作權的相關法律，其官方發布的內容屬於公有領域。
动态自适应编译

**動態編譯**是某些程式語言在執行時用來增進效能的方法。儘管這技術源於 Self，但使用此技術最為人所知的是 Java。此技術可以做到一些只在執行時才能完成的最佳化。使用動態編譯的執行環境一開始執行速度較慢，之後，完成大部分的編譯和再編譯後，會執行得比非動態編譯程式快很多。因為初始化時的效能延遲，動態編譯不適用於一些情況。在許多實作中，一些可以在編譯時期做的最佳化被延到執行時期才編譯，導致不必要的效能降低。即時編譯是一種動態編譯的形式。

一個非常近似的技術是**遞增式編譯**。遞增式編譯器用於 POP-2、POP-11、一些 Lisp 的版本，如 Maclisp 和最少一種版本的 ML 語言（Poplog ML）。這需要程式語言的編譯器成為執行環境的一部分作為要件以實作。如此便得以在任何時候從終端、從檔案、或從執行中程式所建造資料結構中讀取原始碼。然後，轉成機器碼區塊或函式（有可能取代之前同名的函式），之後可立即被程式使用。因為執行中對互動開發和測試的速度的要求，編譯後的機器碼所做的最佳化程度不如標準「批次編譯器」。然而，遞增式編譯過的程式跑起來通常比同一個程式的一般解譯版本還快。遞增式編譯因而能夠同時提供編譯和解譯語言優點。
為了增加可移植性，遞增式編譯通常採兩步驟。第一個步驟會編譯到中間、與平台獨立的語言，然後再到機器碼。在這個例子中，移植只須改變「後端」編譯器。不同於動態編譯，遞增式編譯在程式執行後不會做更進一步的最佳化。

## 參見

* 全美達處理器動態將 x86 碼轉成 VLIW 碼。
* 動態再編譯

## 外部連結

* The UW Dynamic Compilation Project
* Architecture Emulation through Dynamic Compilation （頁面存檔備份，存於網際網路檔案館）
* SCIRun （頁面存檔備份，存於網際網路檔案館）
* Article "Dynamic Compilation, Reflection, & Customizable Apps" by David B. Scofield and Eric Bergman-Terrell
* Article "High-performance XML: Dynamic XPath expressions compilation （頁面存檔備份，存於網際網路檔案館）" by Daniel Cazzulino
* Article "A Survey of Adaptive Optimization in Virtual Machines （頁面存檔備份，存於網際網路檔案館）" by Matthew R. Arnold, Stephen Fink, David P. Grove, Michael Hind, and Peter F. Sweeney
动态范围

**動態範圍**（英語：**dynamic range**）是可變化信號（例如聲音或光）最大值和最小值的比值。也可以用以 10 為底的對數（分貝）或以 2 為底的對數表示。

## 攝影中的應用

在攝影的應用中動態範圍 （頁面存檔備份，存於網際網路檔案館）指的是感光元件最光可記錄的高光資訊，與機底噪點之間的空間。對攝影師而言，不同的 ISO 設定會影響到動態範圍在記錄高光及暗部時的噪點表現。與曝光寬容度有所區別。

## 另見

* 音量競賽
* 高動態範圍成像
* 高動態光照渲染

## 外部連結

* Audible dynamic range (online test)（頁面存檔備份，存於網際網路檔案館）
* https://web.archive.org/web/20060905003034/http://history.sandiego.edu/gen/recording/dynamic.html
* http://www.seis.com.au/TechNotes/TN200410A\_SNR.html（頁面存檔備份，存於網際網路檔案館）
动态范围压缩

**動態範圍壓縮**（DRC - dynamic range compression）可以動態調整音頻輸出幅值，在音量大時壓制音量在某一範圍內，在音量小時適當提升音量。通常用於控制音頻輸出功率，使揚聲器不破音，當處於低音量播放時也能清晰聽到。
动态规划

**動態規劃**（英語：Dynamic programming，簡稱 DP）是一種在數學、管理科學、電腦科學、經濟學和生物資訊學中使用的，通過把原問題分解為相對簡單的子問題的方式求解複雜問題的方法。

動態規劃常常適用於有重疊子問題和最佳子結構性質的問題，動態規劃方法所耗時間往往遠少於樸素解法。

動態規劃背後的基本思想非常簡單。大致上，若要解一個給定問題，我們需要解其不同部分（即子問題），再根據子問題的解以得出原問題的解。

通常許多子問題非常相似，為此動態規劃法試圖僅僅解決每個子問題一次，從而減少計算量：一旦某個給定子問題的解已經算出，則將其記憶化儲存，以便下次需要同一個子問題解之時直接查表。這種做法在重複子問題的數目關於輸入的規模呈指數增長時特別有用。

## 概述

動態規劃在尋找有很多**重疊子問題**的情況的最佳解時有效。它將問題重新組合成子問題。為了避免多次解決這些子問題，它們的結果都逐漸被計算並被儲存，從簡單的問題直到整個問題都被解決。因此，動態規劃儲存遞迴時的結果，因而不會在解決同樣的問題時花費不必要的時間。

動態規劃只能應用於有**最佳子結構**的問題。最佳子結構的意思是局部最佳解能決定全域最佳解（對有些問題這個要求並不能完全滿足，故有時需要引入一定的近似）。簡單地說，問題能夠分解成子問題來解決。

## 適用情況

1. 最佳子結構性質。如果問題的最佳解所包含的子問題的解也是最佳的，我們就稱該問題具有最佳子結構性質（即滿足最佳化原理）。最佳子結構性質為動態規劃演算法解決問題提供了重要線索。
2. 無後效性。即子問題的解一旦確定，就不再改變，不受在這之後、包含它的更大的問題的求解決策影響。
3. 子問題重疊性質。子問題重疊性質是指在用遞迴演算法自頂向下對問題進行求解時，每次產生的子問題並不總是新問題，有些子問題會被重複計算多次。動態規劃演算法正是利用了這種子問題的重疊性質，對每一個子問題只計算一次，然後將其計算結果儲存在一個表格中，當再次需要計算已經計算過的子問題時，只是在表格中簡單地檢視一下結果，從而獲得較高的效率，降低了時間複雜度。

## 實例

包括但不限於切割鋼條問題、Floyd 最短路問題、最大不下降子序列、矩陣鏈乘、凸多邊形三角剖分、背包問題、最長公共子序列、最佳二分搜尋樹等。

#### 背包問題

背包問題作為 NP 完全問題，暫時不存在多項式時間演算法。動態規劃屬於背包問題求解最佳解的可行方法之一。此外，求解背包問題最佳解還有搜尋法等，近似解還有貪婪法等，分數背包問題有最佳貪婪解等。
背包問題具有最佳子結構和重疊子問題。動態規劃一般用於求解背包問題中的整數背包問題（即每種物品所選的個數必須是整數）。
解整數背包問題：
設有 $n$ 件物品，每件價值記為 $P_{i}$ ，每件重量記為 $W_{i}$ ，用一個最大重量為 $W$ 的背包，求裝入物品的最大價值。
在總重量不超過 _W_ 的前提下，我們希望總價格最高。對於 _Y_ ≤ _W_，我們將在總重量不超過 _Y_ 的前提下，總價格所能達到的最高值定義為 _A_(_Y_)。_A_(_W_) 即為問題的答案。

顯然，_A_(_Y_) 滿足：

* _A_(0) = 0
* _A_(_Y_) = max { _A_(_Y - 1_), { _pj_ + _A_(_Y_ - _wj_) | _wj_ ≤ _Y_ } }

其中，_pj_ 為第 _j_ 種物品的價格。

對於特例 0 1 背包問題（即每件物品最多放 1 件，否則不放入）的問題，我們將在總重量不超過 _Y_ 的前提下，前 _j_ 種物品的總價格所能達到的最高值定義為 _A_(_j_, _Y_)。

_A_(_j_, _Y_) 的遞推關係為：

* _A_(0, _Y_) = 0
* 如果 _wj_ > _Y_, _A_(_j_, _Y_) = _A_(_j_ - 1, _Y_)
* 如果 _wj_ ≤ _Y_, _A_(_j_, _Y_) = max { _A_(_j_ - 1, _Y_), _pj_ + _A_(_j_ - 1, _Y_ - _wj_)}

參考 Pascal 代碼

參考 C++ 代碼（不含 include 和陣列聲明）

## 歷史

術語「動態規劃」最初是在 1940 年代由 理察・貝爾曼 用來描述解決問題的過程，在這個過程中，人們需要一個接一個地找到最佳決策。到 1953 年，他將其精煉成為現代的含義，特別是指將較小的決策問題巢狀在較大的決策中， 並且該領域隨後被電氣電子工程師學會認可為系統分析和工程學主題。貝爾曼的貢獻以貝爾曼方程的名義被銘記，它是動態規劃的核心結果，它以遞迴 (電腦科學) 形式重申了最佳化問題。

貝爾曼選擇了「動態」這個詞來捕捉問題的隨時間變化的方面，也因為它聽起來令人印象深刻。 「規劃」一詞指的是使用該方法來找到最佳的「程式」，在於軍事訓練或後勤計劃的意義。這種用法與短語 _線性規劃_ 和 _數學規劃_ 中的用法相同。

術語起源的上述解釋是不足的。正如羅素和諾維格在他們的書中提到上述故事時所寫的那樣：「這不可能完全正確，因為他的第一篇使用這個詞（貝爾曼，1952）的論文出現在威爾遜於 1953 年成為國防部長之前。」此外，還有 Harold J. Kushner （頁面存檔備份，存於網際網路檔案館）在演講中的評論，他記得貝爾曼。他在談到貝爾曼時參照庫什納的話：「另一方面，當我問他同樣的問題時，他回答說他試圖通過加上動態來超越喬治・伯納德・丹齊格的線性規劃。也許這兩種動機都是正確的。」

## 使用動態規劃的演算法

* 最長公共子序列
* Floyd-Warshall 演算法
* Viterbi 演算法
* Kadane's\_algorithm
* 求解馬可夫決策過程下最佳策略

## 參考

## 外部連結
动态语言运行时

**動態語言執行時**（Dynamic Language Runtime，**DLR**）是微軟構架於 CLR 之上的一組服務集合，可提供下列功能：

* 動態類型系統，以分享給所有使用 DLR 服務的語言。
* 動態方法分派
* 動態產生代碼
* Hosting API

DLR 被用來在.NET Framework 上實作如 Python 和 Ruby 等動態語言。DLR 服務目前已經使用在 IronRuby（Ruby 的.NET 實作）和即將釋出的 IronPython 2.0。同時 Microsoft 也計畫使用在 Visual Basic .NET 10.0 與 Managed JScript（ECMAScript 3.0）上。

要讓多種動態語言實作能共享同樣的系統，它應該要能很容易地讓這些實作相互溝通。舉例來說，它應該要讓動態語言能使用以其他動態語言撰寫的函式庫。另外，Hosting API 允許能與靜態語言，如 C#，相互操作。

## 源由

Microsoft DLR 最早是由 Microsoft 在 MIX 2007 上公開。DLR 代碼目前仍未正式釋出，只存在於 IronPython 的庫（Repository）裡面。Microsoft 計畫在 IronPython 2.0 釋出的同時，釋出 DLR 第一個可用的版本。

## 參見

* Da Vinci Machine，在 Java 虛擬機層級讓 Java 平台能支援動態語言的努力。

## 參考
动态调度

在計算機科學中，**動態分派**（Dynamic dispatch）是指運行時選擇哪一個多態的實現（具體的方法或函數）來調用的過程。動態分派通常被應用於物件導向編程（OOP）的語言和系統，並被認為是一個主要特點。

物件導向的系統把一個問題看作是一系列通過名字引用來制定操作的相互影響的物體。多態性是指一些可互換的物體雖有相同名字但卻在行為上不同的現象。例如，一個文件對象和一個資料庫對象都有一個儲存記錄的方法來記錄需要存儲的的個人記錄，但是二者的實現卻不同。一個程序可以有對文件或資料庫的訪問。當一個程序調用對象的存儲記錄時，有一些東西需要來決定採取哪種行為。如果有人認為 OOP 僅僅指給對象發送信息，那麼在這個例子中程序僅僅把一條存儲記錄信息發送給了一個未知類型的對象，而把如何將這條信息發送給正確對象交給運行支持系統來處理。這個對象來決定它執行哪些行為。

與動態分派成對比的是靜態分派，在靜態分派中，對一個多態操作的實現是在編譯時間就選擇好的。動態分派的目的在於支持那些當在編譯時間內無法決定一個多態操作的合適的實現因為這個決定取決於這個操作的一個或多個實際參數的運行類型的情形。

動態分派和動態綁定不同。在選擇操作的上下文中，綁定把名稱和操作相關聯，而分派則在確定名稱所引用的操作之後選擇操作的實現。通過使用動態分派，名稱可以在編譯時被綁定到多態操縱中，但是直到運行時才執行該實現。雖然動態分派不暗示後期綁定，但後期綁定意味著動態分派，因為綁定決定了什麼可以分派。

### 單一與多重分派

選擇調用方法的具體版本的決定可以基於單個對象或者對象的組合。前者被稱為單一分派，並直接由常見的物件導向語言如 C++，Java，Smalltalk、Objective-C、Swift、JavaScript 和 Python 所支持。在這些和與其相類似的語言中，我們可以調用類似於語法的劃分的方法。其參數是可選的。這被認為是發送一個名為 divide，帶有除數參數的信息來做除法。

相比之下，一些語言（例如 Common Lisp、Dylan、Julia）採用基於操作數的組合的分派方法或函數；在除法情況下，被除數和除數的類型一起確定將執行哪個除法運算。這就叫做多重分派。

### 動態分派機制

語言可以用不同的動態分派機制來實現。 由語言提供的動態分派機制的選擇在很大程度上改變了在給定語言內可用或最自然使用的編程範例。

通常，在類型語言中，會基於參數的類型（最常見地基於消息的接收者的類型）來執行分派機制。 這可能被稱為「單類型動態分派」。具有較弱或無打字系統的語言通常攜帶分派表作為每個對象的對象數據的一部分。這允許實例行為因為每個實例可以將給定消息映射到單獨的方法。而有些語言提供混合方法。

動態分派總會產生開銷，因此一些語言為特定方法提供靜態分派。

#### C++ 實現

C ++ 使用早期綁定，並提供動態和靜態分派。 分派的默認形式是靜態的。 為了獲得動態分派，程式設計師必須將一個方法聲明為 virtual。

C ++ 編譯器通常使用稱為虛擬表（vtable）的資料結構來實現動態分派，該表定義給定類（C ++ 本身沒有 vtable 的概念）的消息到方法映射。 然後，該類型的實例將存儲指向此表的指針作為其實例數據的一部分。 當使用多重繼承時，這是複雜的因為 C ++ 不支持後期綁定，C ++ 對象中的虛擬表不能在運行時修改，這將分派目標的潛在集限制為在編譯時選擇的有限集。

類型重載不會在 C ++ 中產生動態分派，因為語言將消息參數的類型視為正式消息名稱的一部分。 這意味著程式設計師看到的消息名不是用於綁定的正式名稱。

#### Go 和 Rust 實現

在 Go 和 Rust 中使用了一種更多樣化的早期綁定。 Vtable 指針會攜帶對象引用作為一種 'fat 指針 '（go 中的接口，或 Rust 中的 'trait 對象 '）。

這使得支持的接口與底層資料結構分離。 為了正確使用類型，每個編譯庫不需要知道所有的接口範圍，只需要知道他們所需要的具體 vtable 布局即可。 代碼可以將不同接口的同一塊數據傳遞給不同的函數。 這種多功能性以每個對象引用的額外數據為代價，如果許多這樣的引用被持久存儲會出問題。

#### Smalltalk 實現

Smalltalk 使用基於類型的消息分派器。每個實例都有一個類型，其定義包含方法。當實例接收到消息時，分派器在消息到方法映射中查找該類型的相應方法，然後調用該方法。

因為一個類型可以有一個基本類型鏈，這個查找可能是非常昂貴的。 一個不成熟的 Smalltalk 機制的實現似乎比 C++ 有更高的開銷，並且這種開銷將會發生在對象接收的每個消息里。

真正的 Smalltalk 實現通常使用一種稱為內聯緩存的技術，這種技術使得方法分派非常迅速。內聯緩存基本上存儲調用站點的前一個目標方法地址和對象類（或者多對緩存的多個對）。緩存方法使用最常見的基於方法選擇器的目標方法（或僅緩存缺失處理程序）來進行初始化。當在執行期間到達方法調用站點時，它只調用緩存中的地址。（在動態代碼生成器中，此調用是直接調用，因為直接地址由緩存缺失邏輯負責回填）。被調用方法中的前序代碼將緩存的類與實際對象類進行比較，如果它們不匹配，程序到緩存缺失處理程序分支中尋找正確的方法。一個快速實現可以具有多個高速緩存條目，並且它通常僅需要幾個指令就可以在初始高速緩存未命中時執行正確的方法。常見的情況是一個緩存的類匹配，並且執行只會在該方法中繼續。

外部緩存也可以通過使用對象類和方法選擇器來實現在方法調用邏輯中的使用。在一個設計中，類和方法選擇器被哈希並且用作到方法分派高速緩存表中的索引。

由於 Smalltalk 是一種反射語言，許多實現允許使用動態生成方法查找表的方法將單個對象變成對象。這允許在每個對象的基礎上更改對象行為。一個被稱為基於原型語言的語言類別已經從這裡生根發芽，其中最著名的是 Self 和 JavaScript。方法分派緩存的細心的設計甚至允許基於原型的語言具有高性能分派方法。

許多其他動態類型的語言，包括 Python、Ruby、Objective-C 和 Groovy 都使用類似的方法。

## 參見

* 函數重載
* 訊息傳遞 (軟體)
* 方法重寫
* 名稱綁定

## 參考文獻

2.Driesen, Karel; Hölzle, Urs; Vitek, Jan (1995). _Message Dispatch on Pipelined Processors_. ECOOP. 

3.Müller, Martin (1995). _Message Dispatch in Dynamically-Typed Object-Oriented Languages_ (Master thesis). University of New Mexico. pp. 16–17.

* Lippman, Stanley B. Inside the C++ Object Model. Addison-Wesley. 1996. ISBN 0-201-83454-5.
动态货架寿命

**動態貨架壽命**（原文：Dynamic shelf life），又稱作**動態貨架保存期限**。貨架上的物品，會隨著周遭環境的不斷變化，而改變其保存期限。在貨架上，裝設感應器（如：溫度、濕度等），物品的保存期限，不再是一個固定的日期或期限。

例如：賣場的瓶裝牛奶，僅僅依照瓶裝上的日期，先進貨的先賣出。這樣的銷售方式，容易導致牛奶在保存期限內，因保存環境改變而變質，卻不自知，讓消費者喝到提前過期的商品。配備有「動態貨架壽命」監控設備，將改變成，快變質的優先賣出。
动态路由

**動態路由**又稱**自適應路由**，是指路由器能根據系統內通信電路的當前狀況，通過不同的路由或指定的目的地轉發數據的過程（如遇到有故障的節點直接繞過或選擇其他正常的路徑）。這一概念常見於與計算機網絡相關聯的領域。

## 參考文獻
动态路由协议

**路由協定**（英語：Routing protocol）是一種指定封包轉送方式的網路協定。Internet 網路的主要節點裝置是路由器，路由器通過路由表來轉發接收到的資料。轉發策略可以是人工指定的（通過靜態路由、策略路由等方法）。在具有較小規模的網路中，人工指定轉發策略沒有任何問題。但是在具有較大規模的網路中（如跨國企業網路、ISP 網路），如果通過人工指定轉發策略，將會給網路管理員帶來巨大的工作量，並且在管理、維護路由表上也變得十分困難。為了解決這個問題，動態路由協定應運而生。動態路由協定可以讓路由器自動學習到其他路由器的網路，並且網路拓撲發生改變後自動更新路由表。網路管理員只需要組態動態路由協定即可，相比人工指定轉發策略，工作量大大減少。

## 常見路由協定

常見的路由協定有 RIP、IGRP（Cisco 私有協定）、EIGRP（Cisco 私有協定）、OSPF、IS-IS、BGP 等。

RIP、IGRP、EIGRP、OSPF、IS-IS 是內部網路關協定（IGP），適用於單個 ISP 的統一路由協定的執行，一般由一個 ISP 運營的網路位於一個 AS（自治系統）內，有統一的 AS number（自治系統號）。BGP 是自治系統間的路由協定，是一種外部閘道器協定，多用於不同 ISP 之間交換路由資訊，以及大型企業、政府等具有較大規模的私有網路。

### RIP

RIP 很早就被用在 Internet 上，是最簡單的路由協定。它是「路由資訊協定（Route Information Protocol）」的簡寫，主要傳遞路由資訊，通過每隔 30 秒廣播一次路由表，維護相鄰路由器的位置關係，同時根據收到的路由表資訊計算自己的路由表資訊。RIP 是一個距離向量路由協定，最大跳數為 15 跳，超過 15 跳的網路則認為目標網路不可達。此協定通常用在網路架構較為簡單的小型網路環境。現在分為 RIPv1 和 RIPv2 兩個版本，後者支援 VLSM 技術以及一系列技術上的改進。RIP 的收斂速度較慢。

### OSPF

OSPF 協定是「開放式最短路徑優先（Open Shortest Path First）」的縮寫，屬於鏈路狀態路由協定。OSPF 提出了「區域（area）」的概念，每個區域中所有路由器維護著一個相同的鏈路狀態資料庫（LSDB）。區域又分為骨幹區域（骨幹區域的編號必須為 0）和非骨幹區域（非 0 編號區域），如果一個執行 OSPF 的網路只存在單一區域，則該區域可以是骨幹區域或者非骨幹區域。如果該網路存在多個區域，那麼必須存在骨幹區域，並且所有非骨幹區域必須和骨幹區域直接相連。OSPF 利用所維護的鏈路狀態資料庫，通過最短路徑優先演算法（SPF 演算法）計算得到路由表。OSPF 的收斂速度較快。由於其特有的開放性以及良好的擴充性，目前 OSPF 協定在各種網路中廣泛部署。

### IS-IS

IS-IS 協定是 Intermediate system to intermediate system（中間系統到中間系統）的縮寫，屬於鏈路狀態路由協定。標準 IS-IS 協定是由國際標準化組織制定的 ISO/IEC 10589:2002 所定義的，標準 IS-IS 不適合用於 IP 網路，因此 IETF 制定了適用於 IP 網路的整合化 IS-IS 協定（Integrated IS-IS）。和 OSPF 相同，IS-IS 也使用了「區域」的概念，同樣也維護著一份鏈路狀態資料庫，通過最短生成樹演算法（SPF）計算出最佳路徑。IS-IS 的收斂速度較快。整合化 IS-IS 協定是 ISP 骨幹網上最常用的 IGP 協定。

### IGRP

IGRP 協定是「內部網路關路由協定（Interior Gateway Routing Protocol）」的縮寫，由 Cisco 於二十世紀八十年代獨立開發，屬於 Cisco 私有協定。IGRP 和 RIP 一樣，同屬距離向量路由協定，因此在諸多方面有著相似點，如 IGRP 也是周期性的廣播路由表，也存在最大跳數（預設為 100 跳，達到或超過 100 跳則認為目標網路不可達）。IGRP 最大的特點是使用了混合度量值，同時考慮了鏈路的頻寬、延遲、負載、MTU、可靠性 5 個方面來計算路由的度量值，而不像其他 IGP 協定單純的考慮某一個方面來計算度量值。目前 IGRP 已經被 Cisco 獨立開發的 EIGRP 協定所取代，版本號為 12.3 及其以上的 Cisco IOS（Internetwork Operating System）已經不支援該協定，現在已經罕有執行 IGRP 協定的網路。

### EIGRP

由於 IGRP 協定的種種缺陷以及不足，Cisco 開發了 EIGRP 協定（增強型內部網路關路由協定）來取代 IGRP 協定。EIGRP 屬於進階距離向量路由協定（又稱混合型路由協定），繼承了 IGRP 的混合度量值，最大特點在於引入了非等價負載均衡技術，並擁有極快的收斂速度。EIGRP 協定在 Cisco 裝置網路環境中廣泛部署。

### BGP

為了維護各個 ISP 的獨立利益，標準化組織制定了 ISP 間的路由協定 BGP。BGP 是「邊界閘道器協定（Border Gateway Protocol）」的縮寫，處理各 ISP 之間的路由傳遞。但是 BGP 執行在相對核心的地位，需要使用者對網路的結構有相當的了解，否則可能會造成較大損失。

## 參考資料

* 中國協定分析網 （頁面存檔備份，存於網際網路檔案館）
* Andrew S. Tanenbaum，《電腦網路》(Computer Networks, ISBN 0133499456)
* William Stallings，《資料與電腦通信》(DATA & COMPUTER COMMUNICATIONS, 6th Edt., ISBN 7040100436)
动态连接器

動態連結器是作業系統的一部分，負責按照可執行程序運行時的需要裝入與連結共享庫。裝入是指把共享庫在永久存儲上的內容複製到內存，連結是指填充跳轉表（jump table）與重定位指針。

## Windows 作業系統

## 類 Unix 作業系統

**ld.so** 是 Unix 或類 Unix 系統上的動態連結器，針對 ELF 文件格式

### 加載順序

當應用程式需要使用動態連結庫里的函數時，由 ld.so 負責加載。搜索動態連結庫的順序依此是

* 環境變量 LD\_AOUT\_LIBRARY\_PATH（dbg 版本）、LD\_LIBRARY\_PATH（release 版本）；在 Linux 中，LD\_PRELOAD 指定的目錄具有最高優先權。
* 緩存文件 /etc/ld.so.cache。此為上述環境變量指定目錄的二進位索引文件。更新緩存的命令是 ldconfig。
* 默認目錄，先在 /lib 中尋找，再到 /usr/lib 中尋找。

### 安全性

駭客可以通過 GOT 覆寫，讓具有特權的應用程式加載惡意動態連結庫，從而導致攻擊行為。所以，對於與 setuid 或 setgid 相關的應用程式，動態連結器只被允許在默認目錄中尋找合法動態連結庫。

## 參考文獻
动态重编译

在電腦科學中，**動態重新編譯**（有時縮寫為 **dynarec** 或偽首字母縮寫 **DRC**）是某些模擬器和虛擬機器的功能。在執行期間，系統會重新編譯程式的一些部分，調整生成的代碼，使其表現程式的執行時環境，並有可能利用那些傳統靜態編譯器不能獲得的資訊，生成更高效的代碼。

## 用途

大多數動態重編譯器用於在執行時不同架構間轉換機器碼。這是一個在類比傳統遊戲平台中往往需要執行的任務。在其他情況下，系統可採取動態重編譯作為自適應最佳化的一部分，以執行可移植程式，如 Java 與 .NET 通用語言執行庫 位元組碼。全速除錯器還使用動態重編譯來減少大多數逆最佳化技術中產生的空間開銷，並實現其他功能，例如動態執行緒遷移。

## 任務

動態重編譯執行的主要任務：

* 從源平台讀入機器碼
* 為目標平台釋放機器碼

動態重編譯也可以執行一些輔助任務：

* 管理重編譯代碼的快取
* 在具有迴圈計數暫存器的平台上更新已迴圈計數
* 中斷檢查管理
* 為支援虛擬化的硬體提供介面，例如 GPU
* 最佳化更進階別的代碼結構，以便在目標硬體上高效執行（見下文）

## 實例

## 應用

### 通用

* 動態重編譯為許多 Java 虛擬機器的特色
* 在 x86 平台上蘋果 Mac OS X 的 Rosetta，允許 PowerPC 代碼在 x86 架構上執行
* 在 PowerPC Classic Mac OS 平台上執行摩托羅拉 68000 系列代碼的 Mac 68k 模擬器
* Psyco，Python 的一個專有編譯器
* Mac 上的 Microsoft Virtual PC，用於在 PowerPC 架構上執行 x86 代碼
* QEMU，一個開源的全系統模擬器
* VirtualBox 使用動態重編譯
* Valgrind，是一種用於記憶體除錯、記憶體流失檢測和效能分析的編程工具，它使用動態重新編譯

### 遊戲

* MAME 在其 CPU 模擬器中使用動態重編譯，支援 MIPS、SuperH、PowerPC，甚至是 Voodoo GPU
* Xbox 360 的向下相容性功能（即執行為初版 Xbox 編寫的遊戲），人們普遍認為其使用動態重編譯
* PPSSPP，索尼 PlayStation Portable 模擬器，其在 x86 與 ARM 平台上都有重編譯器
* PCSX2， 索尼 PlayStation 2 模擬器，擁有 "SuperVU" 的繼任者 ——"microVU" 重編譯器
* Dolphin，任天堂 GameCube 與 Wii 模擬器，有動態重編譯選項
* DeSmuME，任天堂 DS 模擬器，有動態重編譯選項

## 參見

* 二進位重編譯器
* 二進位翻譯
* 即時編譯

## 參考資料

## 外部連結

* Dynamic recompiler tutorial （頁面存檔備份，存於網際網路檔案館）
* Blog posts about writing a MIPS to PPC dynamic recompiler
动态随机一般均衡

**動態隨機一般均衡模型**（「英語：dynamic stochastic general equilibrium modeling，DSGE，DGE 或 SDGE）是一種宏觀經濟學模型，貨幣和財政當局經常使用它來進行政策分析、解釋歷史時間序列數據以及未來預測目的。DSGE 是一種計量經濟學模型以易於處理的方式，應用一般均衡理論和微觀經濟原理來假設經濟現象，例如經濟增長和商業周期，以及政策影響和市場衝擊。
动态随机存储器

**動態隨機存取記憶體**（英語：Dynamic random-access memory，縮寫：**DRAM**）是一種半導體記憶體，通常被用作主儲存器，用於儲存運行中的程式和數據。它與靜態隨機存取記憶體（Static random-access memory，SRAM）相比，具有更高的密度和較低的成本。

在 DRAM 中，每個記憶單元由一個電容和一個開關電路組成，主要的作用原理是利用電容內儲存電荷的多寡來代表一個二進位位元（bit）是 1 還是 0。

由於電晶體會有漏電流的現象，導致電容上所儲存的電荷數量並不足以正確的判別資料，進而導致資料毀損。因此對於 DRAM 來說，周期性地充電是一個不可避免的條件。由於這種需要定時重新整理的特性，因此被稱為「動態」記憶體。相對來說，靜態記憶體（SRAM）只要存入資料後，即使不重新整理也不會遺失記憶。

與 SRAM 相比，DRAM 的優勢在於結構簡單 —— 每一個位元的資料都只需一個電容跟一個電晶體來處理，相比之下在 SRAM 上一個位元通常需要六個電晶體。正因這緣故，DRAM 擁有非常高的密度，單位體積的容量較高因此成本較低。但相反的，DRAM 也有存取速度較慢，耗電量較大的缺點。

與大部分的隨機存取記憶體（RAM）一樣，由於存在 DRAM 中的資料會在電力切斷以後很快消失，因此它屬於一種揮發性記憶體（volatile memory）裝置。

動態隨機存取記憶體通常被組織成一系列的記憶體晶片，這些晶片可以通過總線或其他互連技術進行連接。每個記憶體晶片可以包含數百萬到幾十億個記憶單元。由於 DRAM 儲存器需要重新整理操作，因此通常需要使用一些控制電路，例如記憶體控制器或記憶體介面控制器，以管理儲存器操作，如讀取、寫入、重新整理等。

由於動態隨機存取記憶體具有較高的密度和較低的成本，因此它被廣泛應用於個人電腦、伺服器、智慧型手機和其他計算機系統中。但是，由於其重新整理操作和其他諸多因素，動態隨機存取記憶體的效能和可靠性有時會受到影響。因此，在設計和實現計算機系統時，需要考慮適當的記憶體架構和控制策略，以確保高效的運行和穩定性。

## 工作原理

DRAM 通常以一個電容和一個電晶體為一個單元排成二維矩陣，左圖所示是一個 4×4 的矩陣。基本的操作機制分為讀 (Read) 和寫 (Write)，讀的時候先讓 Bitline (BL) 先充電到操作電壓的一半，然後再把電晶體打開讓 BL 和電容產生電荷共享的現象，若內部儲存的值為 1，則 BL 的電壓會被電荷共享抬高到高於操作電壓的一半，反之，若內部儲存的值為 0，則會把 BL 的電壓拉低到低於操作電壓的一半，得到了 BL 的電壓後，再經過放大器來判別出內部的值為 0 和 1。寫的時候會把電晶體打開，若要寫 1 時則把 BL 電壓抬高到操作電壓使電容上儲存著操作電壓，若要寫 0 時則把 BL 降低到 0 伏特使電容內部沒有電荷。

## 相關條目
动态随机存储器价格操纵

**動態隨機記憶體價格操縱**是指動態隨機存取記憶體（DRAM）製造商透過聯合哄抬等方式操縱價格的行為。

## 2002 年至 2005 年

在 2002 年，依據《休曼法案》，美國司法部對於動態隨機存取記憶體（DRAM）製造商的行為展開調查，指控當時 DRAM 的四大廠：三星電子、海力士、美光和英飛凌，企圖聯手操控價格，並控告其聯合壟斷價格的行為。而其中美光從承認犯罪並轉為污點證人，透過協商管道並與美國司法部合作，獲得免起訴的機會。

美國電腦製造商包括戴爾與桀威聲稱 DRAM 製造商的聯合哄抬 DRAM 價格行為造成利潤降低與市場競爭力下滑。迄今，五家製造商對參予一場國際性的價格操縱共謀中承認有罪，包括海力士、英飛淩、美光、三星電子。

2003 年 12 月，司法部指控美光的區域銷售經理 Alfred P. Censullo 違反了美國法典 18 U.S.C. § 1503。Alfred P. Censullo 在 2002 年 6 月服務於美光公司時，收到陪審團的傳票要求調查檔案時，他對於修改檔案隱瞞且觸犯阻礙調查等罪嫌承認有罪。

在 2004 年 10 月 20 日，英飛淩認罪，因其涉案部分被罰款一億六千萬美金，是美國歷史上第三大反托拉斯罰金金額；同時，英飛淩的四名主管被求處 4 到 6 個月的徒刑，並罰款 25 萬美金。在四人被宣告徒刑之後，美國司法部反托拉斯局刑事執法處助理檢察總長 Scott D. Hammond 說：『這四名主管是第一個針對操縱市場價格承認有罪的案例，對於 DRAM 產業違反反托拉斯法案中，此案將持續積極的調查。我們將繼續追究參予這次價格操縱案中其他國內外的主管。』

海力士很快在 2005 年 4 月第三個認罪，後被處罰一億八千五百萬美金罰金。

2005 年 10 月，三星電子因同一個壟斷行為被控有罪，而他們的三億美金罰金，是美國歷史上到目前為止第二多的反托拉斯法罰金金額，並且也有多名主管前往美國入獄服刑。

而台灣廠商南亞科技和華邦電子當時也受到調查，然而當時市佔率相當低，並未受到此案的波及。

## 2017 年至 2018 年

2018 年 4 月律師事務所 Hagens Berman 指控三星、美光和海力士從 2016 年第一季度到 2017 年第三季度之間通過降低產量和操縱價格使其收入翻了一番多。三星、鎂光和海力士控制了全球 96% 的 DRAM 晶片市場。中國在 2017 年宣布調查記憶體晶片市場的價格壟斷，三家公司的行為突然發生了改變。DRAM 的價格在 2017 年上漲了 47% ，為三十年來最大幅度的上漲。

## 參考資料

## 參見

* 價格操縱
* 卡特爾
* 競爭法
* 美國司法部
* 休曼法案

## 外部連結
动态静图

**動態靜圖**（英語：Cinemagraphs）也稱**動態照片**、**局部動態攝影照片**，是使一張靜物照片中的某部分發生細微、重複運動，製成有視頻剪輯效果的動態圖片。此種圖片通常發布為一個 GIF 或某種視頻格式，給觀看者一種觀看動畫的感覺。

動態靜圖的製作過程是，先拍攝一系列照片或者錄影，然後使用圖像編輯軟體將照片或視頻幀合成為連續幀的無縫循環。其中一點是將其他背景靜止，而將要突出的運動部分製作為重複、持續的運動動畫。

單詞「cinemagraph」由美國攝影師 Kevin Burg 和 Jamie Beck 創造，他們自 2011 年起使用這種技術「動畫化」他們的時尚和新聞照片。

## 參考資料

## 外部連結

* Cinemagraphs.com（頁面存檔備份，存於網際網路檔案館），展示了 Burg 和 Beck 的作品
动态页面

**網頁程式設計**是指使用網頁設計程式語言設計互動式的網頁，又稱動態網頁，動態網頁是指網頁的內容是否可根據某種條件的改變而自動改變，如網頁計數器就是動態的，當有人點擊我們的網頁時，網頁計數器的值會自動增加；BBS 論壇也是動態的，當使用者在論壇上發布資訊時，網頁內容會自動更新，顯示出新發布的資訊及相關回覆；等等。需要注意的是 GIF 動畫和 Flash 動畫是靜態的。因為，這些動畫一旦製作完成後，就不會再改變了，儘管 Flash 動畫可以回應使用者的事件。

## 常見的網頁程式語言

* 在 Web 伺服器端，有
  * ASP（Active Server Pages）
  * ASP.NET
  * CGI（Common Gateway Interface，公用閘道器介面）/FastCGI
    * Shell script（如 ksh，bash 等）
    * Perl（常用）
    * C++
    * 其他任何程式設計語言
  * ColdFusion
  * Java/JSP (Java Server Pages)
  * Perl（Practical Extraction and Report Language，文字分析報告語言）
  * PHP（Hypertext Preprocessor）
  * Python
  * Ruby
  * Smalltalk 等等。
* 在瀏覽器端，有
  * JavaScript
  * ActionScript（用於 Flash）等等。

## 時間線
动性球菌属

**動性球菌屬**（學名：_Planococcus_）為核衣細菌目核衣細菌科的一屬球菌。革蘭氏陽性到可變。此屬的模式種為檸檬色動性球菌 (_Planococcus citreus_)。

## 下屬物種

* 活潑動性球菌 _Planococcus agilis_
* _Planococcus alkanoclasticus_ Engelhardt et al. 2001
* _Planococcus antarcticus_ Reddy et al. 2002
* 橙色動性球菌 _Planococcus aurantiacus_
* 酪素動性球菌 _Planococcus casei_
* 中華動性球菌 _Planococcus chinensis_ (Dai et al. 2005) Gupta and Patel 2020
* 檸檬色動性球菌 _Planococcus citreus_ Migula 1894，水微球菌
* _Planococcus columbae_ Suresh et al. 2007
* _Planococcus donghaensis_ Choi et al. 2007
* _Planococcus faecalis_ Kim et al. 2015
* _Planococcus glaciei_ (Zhang et al. 2009) Gupta and Patel 2020
* _Planococcus halocryophilus_ Mykytczuk et al. 2012
* _Planococcus halophilus_ Novitsky and Kushner 1976，異名
* _Planococcus halotolerans_ Gan et al. 2018
* 科氏動性球菌 _Planococcus kocurii_ Hao and Komagata 1986
* _Planococcus koreensis_ (Yoon et al. 2001) Gupta and Patel 2020
* _Planococcus maitriensis_ Alam et al. 2004
* _Planococcus maritimus_ Yoon et al. 2003
* _Planococcus mcmeekinii_ Junge et al. 1998
* 海床動性球菌 _Planococcus okeanokoites_ (ZoBell and Upham 1944) Nakagawa et al. 1996
* _Planococcus plakortidis_ Kaur et al. 2012
* _Planococcus psychrophilus_ Reddy et al. 2002
* _Planococcus rifietensis_ Romano et al. 2003，拼寫錯誤
* _Planococcus rifietoensis_ corrig. Romano et al. 2003
* 玫瑰色動性球菌 _Planococcus roseus_
* _Planococcus ruber_ Wang et al. 2017
* _Planococcus salinarum_ Yoon et al. 2010
* _Planococcus salinus_ Gan et al. 2018
* _Planococcus stackebrandtii_ Mayilraj et al. 2005
* _Planococcus versutus_ See-Too et al. 2017

## 參考文獻

* **LPSN** - List of Prokaryotic names with Standing in Nomenclature
动性球菌科

**動球菌科**（_Planococcaceae_）是芽孢桿菌綱芽孢桿菌目的一科細菌。該科的模式屬為 _Planococcus_。與核衣細菌科為同一科，學術界尚存爭議。

## 下屬物種

* 鹹海鮮芽胞桿菌屬（_Jeotgalibacillus_）
* 動性球菌屬 (_Planococcus_)
* 魯梅爾芽胞桿菌屬（_Rummeliibacillus_）
* 土壤芽胞桿菌屬（_Solibacillus_）
* 尿素芽胞桿菌屬（_Ureibacillus_）
* 綠芽胞桿菌屬（_Viridibacillus_）

## 參考資料
动感假面

**動感超人**（日語：アクション仮面／アクションかめん _Akushon kamen_）是在臼井儀人漫畫作品《蠟筆小新》登場的劇中劇人物。也是由臼井儀人原作、西脇だっと在雙葉社《月刊 Action》創刊號（2013 年 5 月 25 日發售）至 2015 年 7 月號（2015 年 5 月 25 日發售）連載的衍生漫畫，單行本全 5 集，2016 年 7 月授權布卡漫畫發行簡體中文電子版。

## 角色

**動感超人／動感假面（アクション仮面）**

* 日本配音員：玄田哲章
* 香港配音員：黃志成（第 1-208、211-315 集、劇場版 1）
* 台灣配音員：于正昇（台灣版第 1 集至第 18 集）→于正昌（台灣版第 20 集至第？集）→魏伯勤→宋昱璁（2014 年首播起）；林谷珍（劇場版 21），陳宏瑋（TV 版集數精選 - DVD 版）
* 登場集數:

　
: 特攝片英雄，扮演者是**郷剛太郎**。

　
: 23 歲，外星人。

　
: 小新的偶像之一，擅長使用絕技「動感光波」打倒敵人。

　
: 有時候會在劇場版跟小新一起打倒壞人。

**櫻咪咪子（桜ミミ子）**

* 日本配音員：小櫻悅子
* 香港配音員：吳小藝（劇場版 1）、王夢華（劇場版 11）
* 台灣配音員：李宛鳳（早期）→賀世芳→吳貴竹（2012 年首播起），丘梅君（TV 版集數精選 - DVD 版）
* 登場集數:

　
: 動感超人的搭檔，暱稱咪咪，有各種各樣的造型。11 歲。

　
: 經常被壞人拿來當人質。

**郷博士（ごうはかせ）**

* 日本配音員：納谷六朗

**北春日部博士（きたかすかべはかせ）**

* 日本配音員：增岡弘
* 台灣配音員：李香生（劇場版）
* 香港配音員：陸頌愚（第 1-208、211-315 集、劇場版 1）

　
: 為動感超人研發新武器和招式、然後同時也發明新物品的博士。

　
: 於劇場版暴風森林大作戰中透露了他是小林幸子的忠實粉絲。

## 衍生漫畫作品

作畫：西脇だっと、角色原案：臼井儀人

## 參見

* 蠟筆小新
* 蠟筆小新角色列表