A. 魔獸私服
主要的你要有2件東西
第一:魔獸世界客戶端
第二:資料庫
這里廢話就不說了,本人架設過WOWSF,說說資料庫這塊,一般不會編程的人都覺得很神秘。一般都採用ODBC和MYSQL,ODBC是電腦自帶的,MYSQL因為比較小功能全,很方便使用推薦這兩個。網上看有人寫的比較全大部分引用的懶得重新再寫了,我看還比較詳細,關鍵處做了注釋沒修改。比較難懂的就是SQL語句那裡,照做就OK。mysql用得是可視化界面很好操作你要沒用過就下中文版,有中文的。
mysql4.0.2
mysql-control-center0.9.4
MyODBC-standard-3.51
(上面3個都是架設伺服器用的資料庫端和資料庫管理端:mysql4.0.2是資料庫主程序,mysql-control center0.9.4是資料庫管理界面程序,MyODBC是MySQL與Windows數據服務的連接驅動)
當然還有wow beta3客戶端和3734(就是0.8.0)補丁
需要的資料庫有:
25M的python.sql
7M的python.sql
幾個1k左右的commands.sql,creatures_mov.sql,gmlogin.sql,npc_text.sql,sh.sql,trainers.sql
(注意以上的資料庫要下載的然後導入mysql)
1. 先安裝mysql,mysqlcc,ODBC然後重起。
重起後看看右下的系統托盤里有沒有個紅綠燈的圖標,沒有的話運行c:\mysql\bin\winmysqladmin.exe
開始架伺服器:
運行 mysqlcc ,新建伺服器:
name:python
host:localhost
user:root
password:空
2. 確定後雙擊「 python 」,右鍵點擊 DataBases ,新建資料庫取名 wow 。
右擊User Administration,新建用戶。名字隨便,Hose:localhost,密碼自己記好。
選上All Privileges,右邊在Global Privileges和wow上打對勾,應用。
再把系統自動添加的@localhost用戶的All P....和Glo...,wow上也打上對勾應用。
3. 不關程序,到控制面板,管理工具,服務:mysql。
停止服務,在參數空白行里輸入
safe_MySQLd -O key_buffer=16M -O table_cache=128 -O sort_buffer=4M -O record_buffer=1M -O max_allowed_packet=30M
啟用服務。
4. 回到mysqlcc,右鍵點擊/Databases/wow,開啟新窗口。
點擊新開窗口上面的SQL按鈕,再選擇菜單里的文件\打開...
打開25M的python.sql(載入需要好長時間)然後點擊按鈕欄里的「!」按鈕。
看執行成果,沒有X的就是成功了,有錯誤的話刪掉wow資料庫,從「3.」處重新開始。
5. 打開控制面板\管理工具\ODBC數據源(不同的操作系統名字可能不同)
選擇:系統DNS,添加,MySQL ODBC3.51 Driver。
Date Source Name:(2.里建立的用戶名)
Host/Server Name(or IP):localhost
DataBase Name:wow
User:(2.里建立的用戶名)
Password:(2.里建立的密碼)
6. 啟用python伺服器,但停止wow庫。把7M的python.sql和N個1K的.sql文件拷貝到c:\mysql\bin\
運行c:\mysql\bin\mysql.exe
在命令行里輸入\. python.sql
\. commands.sql
依此類推...
7. 載入完畢後啟動wow庫,運行wowpython0.89,輸入:
host 127.0.0.1(或者你的外網IP或者區域網IP)
lanhost *.*.*.*(你的區域網IP)
db localhost (你剛才「2.」建立的用戶名) (你輸入的密碼) wow
start
出現伺服器開始運行的提示後就可以運行游戲了。
注意事項:只是想單機玩的host地址隨便,lanhost用開始菜單/運行/cmd/ipconfig看到內網地址。
想區域網玩的host,lanhost都用內網IP。想架外網伺服器的就要知道自己的外網實際IP了。
8. 自己玩或者區域網內玩游戲,進游戲登陸界面後按「~」打開控制台,輸入「realmlist (你在「7.」所輸入的內網IP)」使用wow表account項裡面的GM賬號登陸游戲。
OK!架設完畢!
scripts/items.scp(物品資料與代碼)scripts/creatures.scp(npc資料與代碼)saves/players.save(玩家資料)scripts/areatrigge
scripts/items.scp(物品資料與代碼)
scripts/creatures.scp(npc資料與代碼)
saves/players.save(玩家資料)
scripts/areatriggers.scp(傳誦換場景的資料)
scripts/emu.conf(模擬器連接資料,在這里修改IP,要讓別的電腦也進來玩就改成你的IP)
saves/world.save(刷NPC的資料)
scripts/quests.scp(任務的資料)
scripts/classes.scp(應該是屬於初始的天賦)
scripts/spellcost.scp(技能代碼)
scripts/pages.scp(npc說話定義)
scripts/gameobjects.scp(游戲中物體名稱,模型號定義)
scripts/creatures.scp(npc定義)
scripts/defines.scp(應該是所有代碼編號的定義。如在spellcost.scp中寫[spell10]price=120也就是說,學習SPELL_EFFECT_HEAL(在defines.scp中的208行)需要120銅幣。)
--------------------------------------------------------------------------
emu文件
[system]
server_name=LocalServer——>伺服器名稱
server_rules=PvP
http_host=127.0.0.1——>HTTP注冊頁面(需先搭建IIS伺服器)
http_port=8080
rs_host=127.0.0.1——>填你IP
rs_port=3724
ws_host=127.0.0.1——>填你的IP就對啦
ws_port=8085
world_sleep_ms=500——>照字面來看是白天的時間
network_sleep_ms=100——>那麼這個就是晚上的時間啦
connection_timeout=300——>傳說卡號和這個有關改小就對啦
loglevel=1
save_text_ppoints=yes——>傳說修改經驗倍數要改成yes
spawns_pes_distance=64.0
max_players=100——>最大玩家數
這行貼不上來——>不知道干嗎的應該不能少就是了
[game]
linger=20——>刷怪間隔秒
npc_corpse_delay=60——>怪物屍體存在時間妙
autosave_time_minutes=30——>自動保存間隔秒
health_growing_rate=1——>回血率越大越塊
mana_growing_rate=10——>回魔率
energy_growing_rate=10——>回能量
delete_not_used_accounts_days=0——>刪除多少天未登錄的帳號
[bot]
rs_host=192.168.0.1-------------->這里填本地IP
rs_port=3724
account=WAD2
password=TEST
照以上改法,傳說內外網都能連上。
--------------------------------------------------------------------------
DB2Script文件夾中各scp文件含義——quests.scp篇
定義如下:
[quest編號]任務編號
name=SharptalonsClaw//任務名
desc=//任務提示
levels=2530//任務限制等級
zone=39//任務區域
quest_flags=08//任務標記類型
src_item=16305//任務完成所需物品編號
reward_xp=2450//任務獎勵經驗
reward_choice=60761//任務獎勵物品選擇:編號,數量
reward_choice=30701//同上
reward_choice=601//同上
deliver=1821//交付物品:編號,數量
reward_gold=25//任務獎勵金錢:銅幣
kill=610//任務需要殺目標:編號,數量
——pages.scp篇
定義如下:
[page編號]話語編號
next_page下一個話語的編號
text話語內容
——spellcost.scp篇
定義技能學習需求,含義如下:
[spell編號]//技能編號
reqspell=72//學習所需技能
price=1100//學習所需金錢,銅幣
npc訓練師那裡的限制吧。把所有的reqspell去掉,把price都改成1……
——items.scp篇
對游戲裝備的定義,含義如下:
[item編號]
skill=0//熟練度
stackable=1//可堆疊數量
name=WornShortsword//名稱
class=2//類型編號,對應defines.scp中定義
subclass=7//類別編號,對應defines.scp中定義
model=1542//模型編號
quality=1//品質
buyprice=35//買入價格
sellprice=7//賣出價格
inventorytype=21//存儲類型
classes=07FFF//使用職業限制
races=01FF//使用種族限制
level=2//物品等級
reqlevel=1//需求人物等級
damage=130//傷害
delay=1900//延遲
language=1//語言
material=1//表面貼圖
sheath=3//屬性值,這里指大武器,左手裝備
rability=20//耐久度
——gameobjects.scp篇
這個文件是對游戲中出現的怪物的定義,其含義如下:
[gameobj編號]
name=OldLionStatue//怪物名
type=2//怪物類型
model=6//所用模型
sound0=43//第一種聲音
sound1=73//第二種聲音
漢化的話,應該是在這個文件吧
——defines.scp篇
Script文件夾中的定義,都由defines.scp文件開始。這里定義了幾乎所有東西的編號。首先我們來看看這個文件的內容。
按順序是:
races節:定義種族編號。
classes節:定義職業編號。
powers節:定義能量類型編號。
classes節:(注意和前面的區分)定義裝備類型編號。
subclasses節:定義裝備類別編號。
itemtypes節:定義物品編號。
(ps:前面三個地方很容易搞混,不知道寫的時候是怎麼想的*_*)
sheathtypes節:定義武器屬性編號,如單手,雙手
slots節:定義飾品編號
creaturetypes節:npc類型編號
(接下來的節沒有名稱,汗!我們以數字n來代替)
1節:世界語言定義編號
2節:技能(魔法)效果編號定義
3節:技能(魔法)動作模型編號定義
4節:人物狀態編號定義
5節:游戲物品(城市中)編號定義
6節:表情編號定義
7節:人物動作動畫編號定義
8節:物品動畫編號定義
9節:(不是很明白)推測是砍人動作動畫的編號定義
10節:似乎是射箭動作動畫的編號定義
11節:鎖類型編號
12節:技能訓練師的編號定義
這個文件中定義了游戲世界中幾乎所有東西的編號,在下面的文件中出現的編號,都可以在這里找到。要注意的是,編號採用了2種方式。
首先是在每一節下面都是從1開始編號的。對應的調用應該是在scp文件中對應變數,寫出這個編號。如spell,在spellcost.scp文件中,寫[spell1]就表示這個魔法的效果對應2節下的編號1,同時對應3節下的編號1。
第二種是幾節都擁有順序的編號,7至10節的動畫編號定義就是這樣。在第7節中,是寫出了0x0一直到0x86,8節中之寫出了0x87,後面應該是使用得偏移量寫的,如8節中寫1就表示0x88。以此類推。
——classes.scp篇
classes.scp包含對於種族的初始化定義。以暗夜精靈為例,其含義如下:
startmap=1//Kalimdor出生地圖編號
startzone=14//Teldrassil出生地點編號
startpos=10311.3832.4631326.411.0出生地點位置
startstats=1725192020//Str,Agi,Stm,Int,Spr初始化屬性值
bodymale=55推測是男性身體高度值
bodyfemale=56推測是女性身體高度值
skill=98300300//Language:Common指種族語言
spell=668//Language:Common指spell編號
skill=113300300//Language:Darnassian指種族語言
spell=671//Language:Darnassian指spell編號
spell=019CB//Attack指spell編號
spell=81//Dodge指spell編號
skill=1621300//Unarmed
spell=203//Unarmed指spell編號
spell=20580//Shadowmeld指spell編號
spell=20582//Quickness指spell編號
spell=20583//NatureResistance指spell編號
spell=20585//WispSpirit指spell編號
//RangeAttacks遠程攻擊
spell=75//AutoShot指spell編號
spell=2764//Throw指spell編號
skill=451300//Bows
spell=264//Bows指spell編號
skill=461300//Guns
spell=266//Guns指spell編號
skill=1761300//Thrown
spell=2567//Thrown指spell編號
上面的定義中,spell是指資料庫中技能魔法的編號,而skill是指的熟練度。但是我不明白skill中3個數值的表示是什麼意思。達人指教!
——areatriggers.scp篇
areatriggers.scp文件包含世界跳轉的位置。
其含義如下:
[areatrigger編號]
note=注釋
pos=所屬地圖x坐標y坐標z坐標
topos=目標地圖目標x坐標目標y坐標目標z坐標
totrigger=目標轉換點
[areatrigger編號]定義轉換點的編號,在totrigger中使用。
note,注釋
pos,轉換點所在位置
topos,目標轉換點所在位置
totrigger,轉換到某個轉換點
一般更新都是這里的東西了看看吧也許有你想要的答案
--------------------------------------------------------------------------
如果用戶被卡主,作為GM怎麼辦?
就是說,客戶端中斷了,再連接就說此用戶已經在線了,不能登陸,作為GM怎麼解決?
我以為刷新後就可以了,結果等了半個小時也不行,怎麼辦呢?
connection_timeout=300的值設置小一點,單位是秒,一般1分半到兩分鍾就行了!
產生新NPC的方法
先知道相應NPC模板代碼比如99999
用GM賬號跑到要放導師的地方:
.addspawn99999在GM站立的地方安放一個NPC的刷新點。
.setspawndist00該刷新點刷新的怪物自主移動范圍為0-0
.setspawntime11該刷新點刷新怪物的時間間隔為1-1秒。
出現小人既刷新點
等幾秒鍾出現啦
清除刷新點的GM命令
游戲里選定你要刪除的小人,輸入.del
改經驗:
save_text_ppoints=yes
delete_not_used_accounts_days=0
cript目錄下的startup.tcl文件
setxp[expr{5*$victim_level+5}]這句
前面的5是倍數,後面的5是直接得到的經驗,改哪個都可以
if{$lvldiff<=-5}{return0}
-5是怪少與你5級就沒經驗,你可以該多點,這樣就不會打一隻怪升了很多級再打沒經驗了
關於HP,MP及存檔不能正常設置:
1,打開DB2.0安裝文件夾
2,打開scripts子文件夾
3,打開emuCONT文件,按照「辦法」修改。
大家可能只是修改了主文件夾下的emuCONT,所以造成無法存檔現象。
如何保存
CTRL+C之後過幾秒顯示saveing的提示後會自動關閉請注意
或者GM號進游戲打.save
如何聯機或者說如何做伺服器讓人玩
琢磨一下emu文件上面有詳細解釋
我想把卡號的移動到我身邊該用什麼命令呢?
.goname人物名-你飛到該人物身旁
.namego人物名-把該人物拉到你身旁
我想玩生產系的。請問怎麼樣改資源的刷新速度
舉個例子來說吧:
輸入
.addspawn
.setspawngo1731//加一個coppervein銅礦
.setspawntime100200//100-200秒重新生成,你改小就可以刷的快了
.setspawndist100200//每次重刷的距離在100-200尺,這可以避免礦一直出現在同一地方
server_name=LocalServer——>伺服器名稱
http_host=127.0.0.1——>HTTP注冊頁面(需先搭建IIS伺服器)
delete_not_used_accounts_days=0——>刪除多少天未登錄的帳號
(1)伺服器:先去本論壇的[伺服器下載區]下載最新的javaWOW伺服器或者WAD伺服器,如果您使用的是以前的伺服器版本,強烈建議你重新下載。因為技術是一個發展的過程,越新的伺服器功能越強大,BUG也越少。
(2)客戶端:建議購買9C發售的中文客戶端,至於為什麼,不說也知道的。如果你英文實在很好,好到每個物品每個NPC你都能翻譯的話,那就可以不聽我的勸告了。官方網站上有客戶端下的。嫌下得慢的話可以去買,很便宜的。
(3)兩個都安裝好,不一定要在同一目錄。
(4)修改客戶端目錄下的 realmlist.wtf (用記事本打開)文件中的 IP地址為自己的IP,例如 單機的就改成 set realmlist 127.0.0.1 要進區域網的 就改成 set realmlist xxx.xxx.xxx.xxx 其中的xxx.xxx.xxx.xxx是你的區域網IP。
(5)配置你的IP設置 ,啟動伺服器文件夾下的 IP-Configuration.exe 修改,把所有看得的IP全改成自己的。
(5)好了,現在可以啟動伺服器了。主程序是WoWemu.exe或者是No Read map 1.3.1V1.8.exe。
(6)啟動後會出現一個DOS窗口,稍等,......
(7)9:26:13:M:Loading world...
9:26:13:M:Loading PP...
9:26:13:M:done, 365635 ppoints.
好了,到這里就完全啟動好了。
(8)打開http://你的IP:8080 注冊賬號。單機的話是http://127.0.0.1:8080,也可以用伺服器文件夾下的Account Creator.exe 創建賬號和GM賬號。
(9)區域網玩家要進你的伺服器的機器,必須按第四步中的方法修改
set realmlist 你的IP 。
(10)好了,邀請你的好友一起體驗吧
. usr hp 〈hp〉 〈max hp〉 : 改變HP選擇的用戶唯一.
.usr mana 〈mana〉 〈max mana〉 : 改變選擇的用戶mana .
.usr gold 〈num〉 : 改變選擇的用戶金錢..usr lvl 〈num〉 : 改變選擇的用戶的標准.
.usr speed 〈num max 30〉 : 改變選擇的用戶的speed.
.usr wspeed 〈num max 30〉 : 改變選擇的用戶的wspeed.
.usr scale 〈num .02-4〉 : 改變選擇的用戶的 scale.
.usr mount 〈id 1-64〉 : 改變選擇的用戶的登入.
.usr exp 〈exp〉 : 改變選擇的用戶的EXP.
.usr aura 〈aura id〉 : 改變選擇的用戶的aura.
.usr spell 〈spell id〉 :增加一個咒語 .
.usr skin 〈skin id〉 : 改變選擇的用戶的Skin.
.usr talentxp 〈num〉 : 增加天分點.
.gm pass 〈oldpass〉 〈newpass〉 : 改變您真正的通行證為帳戶lvl .
.gm off : 取消顯示〈GM〉用戶
.gm on : 增加顯示〈GM〉用戶
.gm kick 〈name〉 : 踢命名的用戶.
.gm save : 保存.
.gm announce 〈message〉 : 寄發一則消息到世界.
.move where : 移動您給的座標.
.move there 〈name〉 : 移動到命名的用戶.
.move here 〈name〉 : 移動命名的用戶到您著.
.move fast 〈x〉 〈y〉 〈z〉 :向您座標移動.
.move world 〈x〉 〈y〉 〈z〉 〈m〉 :向您座標移動和地圖.
.move town 〈town〉 : 移動您鍵入的鎮.
.move prog : 移動您向程序員小島.
.move isle :移動您向管理員小島.
.npc info :顯示信息在選擇的npc .
.npc mobs 〈modelid〉 〈npcflags〉 〈faction〉 〈level〉 〈name〉 : 產生NPC在你的位置.
.npc taxi : 增加一輛出租汽車.
.npc spell 〈spellid〉 〈price〉 :增加一個咒語來教練員NPC .
.npc rmvspell 〈spellid〉 :從教練員取消咒語NPC .
.npc item 〈itemid〉 〈amount〉 :增加一個項目來教練員NPC .
.npc rmvitem 〈itemid〉 :從教練員去除項目NPC .
.npc itemmove 〈srcslot〉 〈dstslot〉 : 搬入項目販賣者NPC .
.npc delete :刪除NPC.
.npc level 〈level〉 : 改變選擇的NPC 的標准.
.npc skin 〈skinid〉 : 改變選擇的NPC 皮膚.
.npc faction 〈faction〉 :改變選擇的NPC 的派別.
.npc name 〈name〉 :更改選擇的NPC 的名字.
.npc flag 〈flag〉 : 改變選擇的NPC 旗子.
.npc animfreq 〈frequency〉 : 改變選擇的NPC 頻率.
.npc random 〈num 0-1〉 :集合任意開關選擇的NPC .
.npc addmove :增加一個小站或設置NPC.
.npc run 〈num 0-1〉 : 設置奔跑開關選擇的NPC .
.npc state 〈num 0-2〉 :設置如果選擇的NPC NPC 意志自動攻擊.
.npc scale 〈num〉 :選擇的NPC集合scale.
.npc hpmin 〈num〉 : 設置選擇的NPC最小HP .
.npc hpmax 〈num〉 : 設置選擇的NPC最大HP .
.admin ban 〈name〉 :禁令命名的用戶從伺服器
.admin lvl 〈name〉 〈lvl account〉 :改變命名的用戶lvl 帳戶.
.admin addspirit : 增加一種Spirit來世界.
.admin die :使用戶死
.admin revive :使用戶復活
.admin update 〈old〉 〈new〉 : 更新Opcodes
.addgo : 在你的坐標添加游戲對象
.add : 添加項目到你的背包中.
.addnpc : 添加NPC到游戲.
.del : 刪除目標NPC
.setlevel : 設置個人或NPC的等級
.setmodel : 給NPC或個人設置模型數量.
.learn : 學習魔法的數目
.save : 保存文件.
.rehash : 改寫目標.
.flag1 : 設置有毛病的標記.
.ppon : 打開pp系統.
.ppoff :關閉pp系統.
.turn : 轉動NPC面朝你.
.come : NPC來到你的位置.
.go : 去世界坐標.
.gotrigger: 進入世界范圍的位置,參數: trigger_number
.kill : 殺死選擇的NPC或個人.
.killallnpc : 殺死所有的NPC的形象.
.resurrect : 復活選擇的個人.
.setsize : 設置NPC的大小.
.setspeed : 設置NPC或個人的速度
.setflags : 設置NPC或O.G的面具. 參數: 〈ftype〉 〈flags〉
.addspawn : 添加大量的點到你的位置. 參數 : [〈npc entry〉] [〈npocs number〉]
.setnpcspawn : 添加條目和數目作成大量NPC到大量的點
.setnpcgo : 設置條目由於大量游戲目標到大量點
.setspawndist : 設置小和大距離到大量
.setspawntime : 設置小和大的時間到大量.
.setxp : 設置經驗到個人.
.paralyse : 不動和動到個人或NPC.
.setaura : 設置預兆數目
.exploration : 打開你地圖的位置.
.dismount : 卸下你.
.listsp :列出你的魔法.
.listsk :列出你的技能.
.delsp : 忘記魔法
.delsk : 忘記技能.
.info : 附近NPC的信息.
.online : 顯示在線玩家數目
.goname : 移動到輸入名字的個人或NPC.
.goguid : 移動到行會.
.targetgo : 嘗試移動到最近的玩家(定位最近的object)
.targetlink : 嘗試到連接目標OF選擇目標
.move :傳送目標.
.retcl : 重裝TCL
.rescp : 重裝 SCP.
.clearqflags : 清楚尋找標記
.bytes : for debug
.pingmm : 製造點在你的地圖
.adddyn : 測試到競技
1.架設伺服器必須安裝的NET Framework 2.0.exe
2.首先修改服務端內的wowemu.key文件
server_name=Dokj 這行是伺服器名稱,假如要中文,請先用"漢字轉"轉換下
ws_host=127.0.0.1 這里是伺服器IP,可以用域名
ws_port=8085
3.然後打開maps文件夾,運行BatCreator.exe,然後選擇Locate the folder with wow.exe指定一下客戶端的路徑,選好後按一下Create,再按Extract,中途需要按兩次y確認,第二次輸入y以 後窗口會自動關閉.
4.接下來打開scripts文件夾內的emu.conf文件,用記事本打開
[banned]
//ip=127.0.0.1/255.255.255.0 在127.0.0.1的地方輸入IP,默認是單機的
5.賬號可以通過服務端自帶的DButil.exe程序進行添加,打開後選擇
Edit Accounts,方法是:Find的左邊的空格內輸入賬號,password是密碼,plevel
是GM許可權等級,6是最高,然後按一下Add就可以了(注意:添加賬號必須在伺服器開啟以後才行)
6.運行服務端程序WoWemu.exe,等待一段時間後,伺服器就開好了.
7.客戶端需要打補丁.我試過不打補丁就出現版本無法嚴正的錯誤
把"登陸器"解壓到客戶端,然後運行"SF補丁安裝程序.bat",結束以後.用記事本打開realmlist.wtf,修改裡面的IP,改成你的伺服器IP,改完後運行wow.exe就可以進入游戲了,別忘了啟動游戲後用DButil.exe添加賬號..
8.這是最重要的一點.請大家每次關閉伺服器之前.輸入".save"保存一下,不然下次開F以後所有東西都會沒有的,比如賬號..切記!!!!!!
B. java語言,背包問題,從Excel表中讀取數據
基本概念
問題雛形
01背包題目的雛形是:
有N件物品和一個容量為V的背包。第i件物品的體積是c[i],價值是w[i]。求解將哪些物品裝入背包可使價值總和最大。
從這個題目中可以看出,01背包的特點就是:每種物品僅有一件,可以選擇放或不放。
其狀態轉移方程是:
f[i][v]=max{f[i-1][v],f[i-1][v-c[i]]+w[i]}
對於這方方程其實並不難理解,方程之中,現在需要放置的是第i件物品,這件物品的體積是c[i],價值是w[i],因此f[i-1][v]代表的就是不將這件物品放入背包,而f[i-1][v-c[i]]+w[i]則是代表將第i件放入背包之後的總價值,比較兩者的價值,得出最大的價值存入現在的背包之中。
理解了這個方程後,將方程代入實際題目的應用之中,可得
for (i = 1; i <= n; i++)
for (j = v; j >= c[i]; j--)//在這里,背包放入物品後,容量不斷的減少,直到再也放不進了
f[i][j] = max(f[i - 1][j], f[i - 1][j - c[i]] + w[i]);
問題描述
求出獲得最大價值的方案。
注意:在本題中,所有的體積值均為整數。
演算法分析
對於背包問題,通常的處理方法是搜索。
用遞歸來完成搜索,演算法設計如下:
int make(int i, int j)//處理到第i件物品,剩餘的空間為j 初始時i=m , j=背包總容量
{
if (i == 0) return 0;
if (j >= c[i])//(背包剩餘空間可以放下物品 i )
{
int r1 = make(i - 1, j - w[i]);//第i件物品放入所能得到的價值
int r2 = make(i - 1, j);//第i件物品不放所能得到的價值
return min(r1, r2);
}
return make(i - 1, j);//放不下物品 i
}
這個演算法的時間復雜度是O(n^2),我們可以做一些簡單的優化。
由於本題中的所有物品的體積均為整數,經過幾次的選擇後背包的剩餘空間可能會相等,在搜索中會重復計算這些結點,所以,如果我們把搜索過程中計算過的結點的值記錄下來,以保證不重復計算的話,速度就會提高很多。這是簡單的「以空間換時間」。
我們發現,由於這些計算過程中會出現重疊的結點,符合動態規劃中子問題重疊的性質。
同時,可以看出如果通過第N次選擇得到的是一個最優解的話,那麼第N-1次選擇的結果一定也是一個最優解。這符合動態規劃中最優子問題的性質。
解決方案
考慮用動態規劃的方法來解決,這里的:
階段:在前N件物品中,選取若干件物品放入背包中
狀態:在前N件物品中,選取若干件物品放入所剩空間為W的背包中的所能獲得的最大價值
決策:第N件物品放或者不放
由此可以寫出動態轉移方程:
我們用f[i][j]表示在前 i 件物品中選擇若干件放在已用空間為 j 的背包里所能獲得的最大價值
f[i][j] = max(f[i - 1][j - W[i]] + P[i], f[i - 1][j]);//j >= W[ i ]
這個方程非常重要,基本上所有跟背包相關的問題的方程都是由它衍生出來的。所以有必要將它詳細解釋一下:「將前i件物品放入容量為v的背包中」這個子問題,若只考慮第i件物品的策略(放或不放),那麼就可以轉化為一個只牽扯前i-1件物品的問題。如果不放第i件物品,那麼問題就轉化為「前i-1件物品放入容量為v的背包中」,價值為f[v];如果放第i件物品,那麼問題就轉化為「前i-1件物品放入已用的容量為c的背包中」,此時能獲得的最大價值就是f[c]再加上通過放入第i件物品獲得的價值w。
這樣,我們可以自底向上地得出在前M件物品中取出若干件放進背包能獲得的最大價值,也就是f[m,w]
演算法設計如下:
int main()
{
cin >> n >> v;
for (int i = 1; i <= n; i++)
cin >> c[i];//價值
for (int i = 1; i <= n; i++)
cin >> w[i];//體積
for (int i = 1; i <= n; i++)
f[i][0] = 0;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= v; j++)
if (j >= w[i])//背包容量夠大
f[i][j] = max(f[i - 1][j - w[i]] + c[i], f[i - 1][j]);
else//背包容量不足
f[i][j] = f[i - 1][j];
cout << f[n][v] << endl;
return 0;
}
由於是用了一個二重循環,這個演算法的時間復雜度是O(n*w)。而用搜索的時候,當出現最壞的情況,也就是所有的結點都沒有重疊,那麼它的時間復雜度是O(2^n)。看上去前者要快很多。但是,可以發現在搜索中計算過的結點在動態規劃中也全都要計算,而且這里算得更多(有一些在最後沒有派上用場的結點我們也必須計算),在這一點上好像是矛盾的。
C. 01背包問題變種:從給定的N個正數中選取若干個數之和最接近M的JAVA寫法
BIAS0:= (C-MA(C,2))/MA(C,2)*100;
BIAS1 := (C-MA(C,12))/MA(C,12)*100;
BIAS2 := (C-MA(C,26))/MA(C,26)*100;
BIAS3 := (C-MA(C,48))/MA(C,48)*100;
HXL:=V/CAPITAL*100;
D1:=INDEXC;
D2:=MA(D1,56);
DR2:=D1/D2<0.94;
E1:=(C-HHV(C,12))/HHV(C,12)*10;
E2:=(C-REF(C,26))/REF(C,26)*10;
D. 電腦里常用的的英語有那些(漢語意思)
第一部分、計算機演算法常用術語中英對照
Data Structures 基本數據結構
Dictionaries 字典
Priority Queues 堆
Graph Data Structures 圖
Set Data Structures 集合
Kd-Trees 線段樹
Numerical Problems 數值問題
Solving Linear Equations 線性方程組
Bandwidth Rection 帶寬壓縮
Matrix Multiplication 矩陣乘法
Determinants and Permanents 行列式
Constrained and Unconstrained Optimization 最值問題
Linear Programming 線性規劃
Random Number Generation 隨機數生成
Factoring and Primality Testing 因子分解/質數判定
Arbitrary Precision Arithmetic 高精度計算
Knapsack Problem 背包問題
Discrete Fourier Transform 離散Fourier變換
Combinatorial Problems 組合問題
Sorting 排序
Searching 查找
Median and Selection 中位數
Generating Permutations 排列生成
Generating Subsets 子集生成
Generating Partitions 劃分生成
Generating Graphs 圖的生成
Calendrical Calculations 日期
Job Scheling 工程安排
Satisfiability 可滿足性
Graph Problems -- polynomial 圖論-多項式演算法
Connected Components 連通分支
Topological Sorting 拓撲排序
Minimum Spanning Tree 最小生成樹
Shortest Path 最短路徑
Transitive Closure and Rection 傳遞閉包
Matching 匹配
Eulerian Cycle / Chinese Postman Euler迴路/中國郵路
Edge and Vertex Connectivity 割邊/割點
Network Flow 網路流
Drawing Graphs Nicely 圖的描繪
Drawing Trees 樹的描繪
Planarity Detection and Embedding 平面性檢測和嵌入
Graph Problems -- hard 圖論-NP問題
Clique 最大團
Independent Set 獨立集
Vertex Cover 點覆蓋
Traveling Salesman Problem 旅行商問題
Hamiltonian Cycle Hamilton迴路
Graph Partition 圖的劃分
Vertex Coloring 點染色
Edge Coloring 邊染色
Graph Isomorphism 同構
Steiner Tree Steiner樹
Feedback Edge/Vertex Set 最大無環子圖
Computational Geometry 計算幾何
Convex Hull 凸包
Triangulation 三角剖分
Voronoi Diagrams Voronoi圖
Nearest Neighbor Search 最近點對查詢
Range Search 范圍查詢
Point Location 位置查詢
Intersection Detection 碰撞測試
Bin Packing 裝箱問題
Medial-Axis Transformation 中軸變換
Polygon Partitioning 多邊形分割
Simplifying Polygons 多邊形化簡
Shape Similarity 相似多邊形
Motion Planning 運動規劃
Maintaining Line Arrangements 平面分割
Minkowski Sum Minkowski和
Set and String Problems 集合與串的問題
Set Cover 集合覆蓋
Set Packing 集合配置
String Matching 模式匹配
Approximate String Matching 模糊匹配
Text Compression 壓縮
Cryptography 密碼
Finite State Machine Minimization 有窮自動機簡化
Longest Common Substring 最長公共子串
Shortest Common Superstring 最短公共父串
DP——Dynamic Programming——動態規劃
recursion —— 遞歸
第二部分、編程詞彙
A2A integration A2A整合
abstract 抽象的
abstract base class (ABC)抽象基類
abstract class 抽象類
abstraction 抽象、抽象物、抽象性
access 存取、訪問
access level訪問級別
access function 訪問函數
account 賬戶
action 動作
activate 激活
active 活動的
actual parameter 實參
adapter 適配器
add-in 插件
address 地址
address space 地址空間
address-of operator 取地址操作符
ADL (argument-dependent lookup)
ADO(ActiveX Data Object)ActiveX數據對象
advanced 高級的
aggregation 聚合、聚集
algorithm 演算法
alias 別名
align 排列、對齊
allocate 分配、配置
allocator分配器、配置器
angle bracket 尖括弧
annotation 註解、評注
API (Application Programming Interface) 應用(程序)編程介面
app domain (application domain)應用域
application 應用、應用程序
application framework 應用程序框架
appearance 外觀
append 附加
architecture 架構、體系結構
archive file 歸檔文件、存檔文件
argument引數(傳給函式的值)。參見parameter
array 數組
arrow operator 箭頭操作符
ASP(Active Server Page)活動伺服器頁面
ASP.NET worker process ASP.NET工作者進程
assembly 裝配件、配件
assembly language 匯編語言
assembly manifest 裝配件清單
assert(ion) 斷言
assign 賦值
assignment 賦值、分配
assignment operator 賦值操作符
associated 相關的、相關聯的
associative container 關聯式容器(對應sequential container)
asynchronous 非同步的
atomic 原子的
atomic operation 原子操作
attribute 特性、屬性
authentication service 驗證服務
authorization 授權
audio 音頻
A.I. 人工智慧
B2B integration B2B整合、B2B集成(business-to-business integration)
background 背景、後台(進程)
backward compatible 向後兼容、向下兼容
backup 備份
backup device備份設備
backup file 備份文件
bandwidth 帶寬
base class 基類
base type 基類型
batch 批處理
BCL (base class library)基類庫
binary 二進制
binary search 二分查找
binary tree 二叉樹
binary function 雙參函數
binary large object二進制大對象
binary operator 二元操作符
binding 綁定
bit 位
bitmap 點陣圖
bitwise 按位...
bitwise 為單元進行復制;位元逐一復制,按位拷
bitwise operation 按位運算
block 塊、區塊、語句塊
bookkeeping 簿記
boolean 布林值(真假值,true或false)
border 邊框
bounds checking 邊界檢查
boxing 裝箱、裝箱轉換
brace (curly brace) 大括弧、花括弧
bracket (square brakcet) 中括弧、方括弧
breakpoint 斷點
browser applications 瀏覽器應用(程序)
browser-accessible application 可經由瀏覽器訪問的應用程序
build 編連(專指編譯和連接
built-in 內建、內置
bus 匯流排
business 業務、商務(看場合)
business Logic 業務邏輯
business rules 業務規則
buttons 按鈕
bug 臭蟲
by/through 通過
byte 位元組(由8 bits組成)
cache 高速緩存
calendar 日歷
call 調用
callback 回調
call-level interface (CLI)調用級介面(CLI)
call operator 調用操作符
candidate key 候選鍵 (for database)
cascading delete 級聯刪除 (for database)
cascading update 級聯更新 (for database)
casting 轉型、造型轉換
catalog 目錄
chain 鏈(function calls)
character 字元
character format 字元格式
character set 字元集
CHECK constraints CHECK約束 (for database)
checkpoint 檢查點 (for database)
check box 復選框
check button 復選按鈕
child class 子類
CIL (common intermediate language)通用中間語言、通用中介語言
class 類
class declaration 類聲明
class definition 類定義
class derivation list 類繼承列表
class factory 類廠
class hierarchy 類層次結構
class library 類庫
class loader 類裝載器
class template 類模板
class template partial specializations 類模板部分特化
class template specializations 類模板特化
classification 分類
clause 子句
client application 客戶端應用程序
client cursor 客戶端游標 (for database)
code page 代碼頁
cleanup 清理、清除
CLI (Common Language Infrastructure) 通用語言基礎設施
client 客戶、客戶端
client area 客戶區
client-server 客戶機/伺服器、客戶端/伺服器
clipboard 剪貼板
clone 克隆
CLS (common language specification) 通用語言規范
code access security 代碼訪問安全
COFF (Common Object File Format) 通用對象文件格式
collection 集合
COM (Component Object Model) 組件對象模型
combo box 組合框
command line 命令行
comment 注釋
commit 提交 (for database)
communication 通訊
compatible 兼容
compile time 編譯期、編譯時
compiler 編譯器
component組件
composite index 復合索引、組合索引 (for database)
composite key 復合鍵、組合鍵 (for database)
composition 復合、組合
concept 概念
concrete具體的
concrete class 具體類
concurrency 並發、並發機制
constraint 約束 (for database)
configuration 配置、組態
connection 連接 (for database)
connection pooling 連接池
console 控制台
constant 常量
construct 構件、成分、概念、構造(for language)
constructor (ctor) 構造函數、構造器
container 容器
containment包容
context 環境、上下文
control 控制項
cookie (不譯)
拷貝
CORBA 通用對象請求中介架構(Common Object Request Broker Architecture)
cover 覆蓋、涵蓋
create/creation 創建、生成
crosstab query 交叉表查詢 (for database)
CRTP (curiously recurring template pattern)
CTS (common type system)通用類型系統
cube 多維數據集 (for database)
cursor 游標
cursor 游標 (for database)
custom 定製、自定義
data 數據
data connection 數據連接 (for database)
Data Control Language (DCL) 數據控制語言(DCL) (for database)
Data Definition Language (DDL) 數據定義語言(DDL) (for database)
data dictionary 數據字典 (for database)
data dictionary view 數據字典視圖 (for database)
data file 數據文件 (for database)
data integrity 數據完整性 (for database)
data manipulation language (DML)數據操作語言(DML) (for database)
data mart 數據集市 (for database)
data pump 數據抽取 (for database)
data scrubbing 數據清理 (for database)
data source 數據源 (for database)
Data source name (DSN) 數據源名稱(DSN) (for database)
data warehouse 數據倉庫 (for database)
dataset 數據集 (for database)
database 資料庫 (for database)
database catalog 資料庫目錄 (for database)
database diagram 數據關系圖 (for database)
database file 資料庫文件 (for database)
database object 資料庫對象 (for database)
database owner 資料庫所有者 (for database)
database project 資料庫工程 (for database)
database role 資料庫角色 (for database)
database schema 資料庫模式、資料庫架構 (for database)
database script 資料庫腳本 (for database)
data-bound 數據綁定 (for database)
data-aware control數據感知控制項 (for database)
data member 數據成員、成員變數
dataset 數據集 (for database)
data source 數據源 (for database)
data structure數據結構
data table 數據表 (for database)
datagram 數據報文
DBMS (database management system)資料庫管理系統 (for database)
DCOM (distributed COM)分布式COM
dead lock 死鎖 (for database)
deallocate 歸還
debug 調試
debugger 調試器
decay 退化
decision support 決策支持
declaration 聲明
declarative referential integrity (DRI)聲明引用完整性(DRI) (for database)
dection 推導
DEFAULT constraint默認約束 (for database)
default database 默認資料庫 (for database)
default instance 默認實例 (for database)
default result set 默認結果集 (for database)
default 預設、默認值
defer 推遲
definition 定義
delegate 委託
delegation 委託
dependent name
deploy 部署
dereference 解引用
dereference operator (提領)運運算元
derived class 派生類
design by contract 契約式設計
design pattern 設計模式
destroy 銷毀
destructor(dtor)析構函數、析構器
device 設備
DHTML (dynamic HyperText Markup Language)動態超文本標記語言
dialog 對話框
digest 摘要
digital 數字的
DIME (Direct Internet Message Encapsulation)直接Internet消息封裝
directive (編譯)指示符
directory 目錄
dirty pages臟頁 (for database)
dirty read 臟讀 (for database)
disassembler 反匯編器
DISCO (Discovery of Web Services)Web Services的查找
disk 盤
dispatch 調度、分派、派發(我喜歡「調度」)
DISPID (Dispatch Identifier)分派標識符
distributed computing 分布式計算
distributed query 分布式查詢 (for database)
DNA (Distributed interNet Application) 分布式網間應用程序
document 文檔
DOM (Document Object Model)文檔對象模型
dot operator (圓)點操作符
driver 驅動(程序)
DTD (document type definition) 文檔類型定義
double-byte character set (DBCS)雙位元組字元集(DBCS)
mp 轉儲
mp file 轉儲文件
dynamic cursor 動態游標 (for database)
dynamic filter 動態篩選 (for database)
dynamic locking 動態鎖定 (for database)
dynamic recovery 動態恢復 (for database)
dynamic snapshot 動態快照 (for database)
dynamic SQL statements 動態SQL語句 (for database)
dynamic assembly 動態裝配件、動態配件
dynamic binding 動態綁定
EAI (enterprise application integration)企業應用程序集成(整合)
EBCO (empty base class optimization) 空基類優化(機制)
e-business 電子商務
EDI (Dlectronic Data Interchange)電子數據交換
efficiency 效率
efficient 高效
end-to-end authentication 端對端身份驗證
end user 最終用戶
engine 引擎
entity 實體
encapsulation 封裝
enclosing class 外圍類別(與巢狀類別 nested class有關)
enum (enumeration) 枚舉
enumerators 枚舉成員、枚舉器
equal 相等
equality 相等性
equality operator 等號操作符
error log 錯誤日誌 (for database)
escape code 轉義碼
escape character 轉義符、轉義字元
exclusive lock 排它鎖 (for database)
explicit transaction 顯式事務 (for database)
evaluate 評估
event 事件
event driven 事件驅動的
event handler 事件處理器
evidence 證據
exception 異常
exception declaration 異常聲明
exception handling 異常處理、異常處理機制
exception-safe 異常安全的
exception specification 異常規范
exit 退出
explicit 顯式
explicit specialization 顯式特化
export 導出
expression 表達式
facility 設施、設備
fat client 胖客戶端
feature 特性、特徵
fetch 提取
field 欄位(java)
field 欄位 (for database)
field length 欄位長度 (for database)
file 文件
filter 篩選 (for database)
finalization 終結
firewall 防火牆
finalizer 終結器
firmware 固件
flag 標記
flash memory 快閃記憶體
flush 刷新
font 字體
foreign key (FK) 外鍵(FK) (for database)
form 窗體
formal parameter 形參
forward declaration 前置聲明
forward-only 只向前的
forward-only cursor 只向前游標 (for database)
fragmentation 碎片 (for database)
framework 框架
full specialization 完全特化
function 函數
function call operator (即operator ()) 函數調用操作符
function object 函數對象
function overloaded resolution函數重載決議
functionality 功能
function template函數模板
functor 仿函數
GAC (global assembly cache) 全局裝配件緩存、全局配件緩存
GC (Garbage collection) 垃圾回收(機制)、垃圾收集(機制)
game 游戲
generate 生成
generic 泛化的、一般化的、通用的
generic algorithm通用演算法
genericity 泛型
getter (相對於 setter)取值函數
global 全局的
global object 全局對象
global scope resolution operator 全局范圍解析操作符
grant 授權 (for database)
granularity 粒度
group 組、群
group box 分組框
GUI 圖形界面
GUID (Globally Unique Identifier) 全球唯一標識符
hand shaking 握手
handle 句柄
handler 處理器
hard-coded 硬編碼的
hard- 截屏圖
hard disk 硬碟
hardware 硬體
hash table 散列表、哈希表
header file頭文件
heap 堆
help file 幫助文件
hierarchy 層次結構、繼承體系
hierarchical data 階層式數據、層次式數據
hook 鉤子
Host (application)宿主(應用程序)
hot key 熱鍵
hyperlink 超鏈接
HTML (HyperText Markup Language) 超文本標記語言
HTTP pipeline HTTP管道
HTTP (HyperText Transfer Protocol) 超文本傳輸協議
icon 圖標
IDE (Integrated Development Environment)集成開發環境
IDL (Interface Definition Language) 介面定義語言
identifier 標識符
idle time 空閑時間
if and only if當且僅當
IL (Intermediate Language) 中間語言、中介語言
image 圖象
IME 輸入法
immediate base 直接基類
immediate derived 直接派生類
immediate updating 即時更新 (for database)
implicit transaction隱式事務 (for database)
incremental update 增量更新 (for database)
index 索引 (for database)
implement 實現
implementation 實現、實現品
implicit 隱式
import 導入
increment operator 增加操作符
infinite loop 無限循環
infinite recursive 無限遞歸
information 信息
infrastructure 基礎設施
inheritance 繼承、繼承機制
inline 內聯
inline expansion 內聯展開
initialization 初始化
initialization list 初始化列表、初始值列表
initialize 初始化
inner join 內聯接 (for database)
in-place active 現場激活
instance 實例
instantiated 具現化、實體化(常應用於template)
instantiation 具現體、具現化實體(常應用於template)
integrate 集成、整合
integrity 完整性、一致性
integrity constraint完整性約束 (for database)
interprocess communication (IPC)進程間通訊(IPC)
interacts 交互
interface 介面
for GUI 界面
interoperability 互操作性、互操作能力
interpreter 解釋器
introspection 自省
invariants 不變性
invoke 調用
isolation level 隔離級別 (for database)
iterate 迭代
iterative 反復的、迭代的
iterator 迭代器
iteration 迭代(迴圈每次輪回稱為一個iteration)
item 項、條款、項目
JIT compilation JIT編譯 即時編譯
key 鍵 (for database)
key column 鍵列 (for database)
laser 激光
late binding 遲綁定
left outer join 左向外聯接 (for database)
level 階、層例
high level 高階、高層
library 庫
lifetime 生命期、壽命
link 連接、鏈接
linkage 連接、鏈接
linker 連接器、鏈接器
literal constant 字面常數
list 列表、表、鏈表
list box 列表框
livelock 活鎖 (for database)
load 裝載、載入
load balancing 負載平衡
loader 裝載器、載入器
local 局部的
local object 局部對象
lock 鎖
log 日誌
login 登錄
login security mode登錄安全模式 (for database)
lookup table 查找表 (for database)
loop 循環
loose coupling 鬆散耦合
lvalue 左值
machine code 機器碼、機器代碼
macro 宏
maintain 維護
managed code 受控代碼、託管代碼
Managed Extensions 受控擴充件、託管擴展
managed object 受控對象、託管對象
mangled name
manifest 清單
manipulator 操縱器(iostream預先定義的一種東西)
many-to-many relationship 多對多關系 (for database)
many-to-one relationship 多對一關系 (for database)
marshal 列集
member 成員
member access operator 成員取用運運算元(有dot和arrow兩種)
member function 成員函數
member initialization list成員初始值列表
memberwise 以member為單元…、members 逐一…
memberwise
memory 內存
memory leak 內存泄漏
menu 菜單
message 消息
message based 基於消息的
message loop 消息環
message queuing消息隊列
metadata 元數據
metaprogramming元編程
method 方法
micro 微
middleware 中間件
middle tier 中間層
modeling 建模
modeling language 建模語言
modifier 修飾字、修飾符
modem 數據機
mole 模塊
most derived class最底層的派生類
mouse 滑鼠
mutable 可變的
mutex 互斥元、互斥體
multidimensional OLAP (MOLAP) 多維OLAP(MOLAP) (for database)
multithreaded server application 多線程伺服器應用程序
multiuser 多用戶
multi-tasking 多任務
multi-thread 多線程
multicast delegate 組播委託、多點委託
named parameter 命名參數
named pipe 命名管道
namespace 名字空間、命名空間
native 原生的、本地的
native code 本地碼、本機碼
Native Image Generator (NGEN)本地映像生成器
nested class 嵌套類
nested query 嵌套查詢 (for database)
nested table 嵌套表 (for database)
network 網路
network card 網卡
nondependent name
object 對象
object based 基於對象的
object file 目標文件
object model 對象模型
object oriented 面向對象的
laser 激光
late binding 遲綁定
left outer join 左向外聯接 (for database)
level 階、層例
high level 高階、高層
library 庫
lifetime 生命期、壽命
link 連接、鏈接
linkage 連接、鏈接
linker 連接器、鏈接器
literal constant 字面常數
list 列表、表、鏈表
list box 列表框
livelock 活鎖 (for database)
load 裝載、載入
load balancing 負載平衡
loader 裝載器、載入器
local 局部的
local object 局部對象
lock 鎖
log 日誌
login 登錄
login security mode登錄安全模式 (for database)
lookup table 查找表 (for database)
loop 循環
loose coupling 鬆散耦合
lvalue 左值
machine code 機器碼、機器代碼
macro 宏
maintain 維護
managed code 受控代碼、託管代碼
Managed Extensions 受控擴充件、託管擴展
managed object 受控對象、託管對象
mangled name
manifest 清單
manipulator 操縱器(iostream預先定義的一種東西)
many-to-many relationship 多對多關系 (for database)
many-to-one relationship 多對一關系 (for database)
marshal 列集
member 成員
member access operator 成員取用運運算元(有dot和arrow兩種)
member function 成員函數
member initialization list成員初始值列表
memberwise 以member為單元…、members 逐一…
memberwise
memory 內存
memory leak 內存泄漏
menu 菜單
message 消息
message based 基於消息的
message loop 消息環
message queuing消息隊列
metadata 元數據
metaprogramming元編程
method 方法
micro 微
middleware 中間件
middle tier 中間層
modeling 建模
modeling language 建模語言
modifier 修飾字、修飾符
modem 數據機
mole 模塊
most derived class最底層的派生類
mouse 滑鼠
mutable 可變的
mutex 互斥元、互斥體
multidimensional OLAP (MOLAP) 多維OLAP(MOLAP) (for database)
multithreaded server application 多線程伺服器應用程序
multiuser 多用戶
multi-tasking 多任務
multi-thread 多線程
multicast delegate 組播委託、多點委託
named parameter 命名參數
named pipe 命名管道
namespace 名字空間、命名空間
native 原生的、本地的
native code 本地碼、本機碼
Native Image Generator (NGEN)