999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

狀態壓縮思想在計算機程序設計中的簡單應用

2018-05-14 02:36:36李曉宇秦文杰
科學與財富 2018年9期
關鍵詞:計算機思想

李曉宇 秦文杰

摘 要:隨著問題規模增大,可能解的范圍會跟著增大,甚至是指數級增長。亦或是在求解時問題狀態難以表示。這時就需要考慮狀態壓縮了。講解了什么是狀態壓縮思想,介紹了狀態壓縮在計算機程序設計的聯系,通過幾個案例體會如何把狀態壓縮思想應用到計算機程序設計中,分析了狀態壓縮在計算機程序設計中的的優勢與不足。理解狀態壓縮的思想,并將其靈活應用于計算機解決實際問題。

關鍵詞:v

0、引言:

隨著計算機的快速發展,人們發現越來越多的問題可用計算機快速準確方便地解決。一般,計算機解決問題主要靠計算搜索。若無法直接去計算求解,可用計算機以每秒計算百萬次的速度在可能的解空間中搜索。但是,問題規模較大時,需要消耗大量的計算機資源,如:內存,時間。而且有的問題狀態難以用簡潔的數據結構描述,這時判斷狀態是否是更優解也就更加麻煩。于是,狀態壓縮思想也就產生了。狀態壓縮可用于降低計算機內存消耗,減小判斷解是否更優的復雜度和時間。

1、什么是狀態壓縮思想

根據對問題狀態的理解,思維上對問題進行抽象。把一個問題的狀態用另一種在效果上等價的更加簡化的狀態來代替。通常,新的狀態表示更加簡單,可能是脫離了問題實際意義的一種數學表示法。問題原始狀態必須和新的狀態一一對應,新的狀態可以轉化為原始問題狀態。

2、狀態壓縮思想與計算機程序設計的聯系

在使用計算機解決實際問題時,必須把實際問題轉化成計算機可以理解并進行計算求解的形式。若直接把問題狀態簡單地轉化為某種數據結構,很可能效率更低甚至是資源耗費過大。這時就需要在數據結構上進行抽象表示。能用數字表示的,就不用復合數據結構去表示;能用位表示的,就可以提高效率,節省時間空間。狀態壓縮思想,盡量使問題轉太表示更加簡單,更加容易操作。

3、狀態壓縮思想在計算機程序設計中的應用

3.1康拓展開

康拓展開可以得到一個排列在全排列中的次序。例如,一個序列有n個互不相同的元素組成,那么這n個元素就用(n!) 個排列情況(若n較大,則轉態空間急劇增大)。隨機給出這n個元素的一個排列,就可以求出這個排列在全排列中的位置,次序。這個次序是一個整數,就可以用這個整數代替這個序列。于是,一維序就映射為了一個整數,大大降低了存儲這個序列狀態表示所需的空間。而且,n 個元素序列對應n個整數,可以把一個整數還原為一個由n個元素組成的一個排列狀態。

利用康拓展開可以解決經典的八數碼問題的狀態表示

康拓展開和康拓逆展開算法實現鏈接[3]

3.2 Flip Game[4] 翻轉棋子

翻轉棋子問題描述:在一個4x4的棋盤上擺滿了16個黑白棋子。每次可以翻轉某個棋子及其相鄰的棋子。翻轉規則:白色變黑色,黑色變白色。若可以將這盤16個棋子翻轉為純色(全白或全黑),則游戲勝利(翻轉次數不限)。

這個問題可以用搜索,棋盤的狀態總共就用65536(1 << 16 = 2^16)種,肯定是可以判斷出是否可以翻轉為純色的。那么問題的關鍵就是,如何表示這盤棋子的狀態?若簡單地用一個二維數組表示這個棋盤狀態,那么需要65536個矩陣,而且判斷是否已搜索過某個狀態需要的時間是判斷矩陣是否相同。

若運用狀態壓縮的思想,抽象問題。把黑白棋看做0或1。則一盤棋就由16個1或0組成。將這16個01排列一塊,就是一個整數。這就巧妙地把一個二維棋盤狀態轉化成了一個數字,大大降低了內存的消耗。而且判斷兩個數字是否相等,遠快于判斷矩陣是否相同。

解決該問題的源碼:代碼托管平臺鏈接[5]

3.3 hihocoder Offer收割19th 數組重排3 [6]

給定一個{1..N}的排列A1, A2, ... AN,每一次操作可以將相鄰的兩個數一起移動(保持兩個數相鄰且前后順序不變)到任意位置。詢問至少經過多少次操作,可以使得原序列變為1, 2, ..., N(N最大為8)。

例如對于54321,把32一起移動到最左端得到32541;再把25一起移動到最右端得到34125;再把12一起移動到最左端得到12345。

解決這個問題時,需要注意范圍,N最大為8,就不能直接簡單用整數作為排列的狀態了,因為87654321很大,需要花費的空間太大。需要注意到,每個位上的數字最大為8,3個bit位就可以存下了。所以對于這樣的每位都不大于8的8位數整數,需要(3個bit * 8)24個bit位,需要16777216(1700萬)個整數來表示所有狀態。 這就在整數的基礎上,從微觀的位上考慮,進一步壓縮抽象問題的狀態。當進行狀態轉換時,可以用位操作實現。截取幾個字節中的某些位時,可以用移位和位操作與或。對于這個案例,處理好狀態抽象表示和轉換后,就是搜索是否可以翻轉為純色棋盤了。

解決該案例的具體代碼實現,請參考代碼托管平臺鏈接[7]

4、狀態壓縮方法在計算機程序設計中的不足與優勢

優勢:狀態壓縮解決了計算機在處理問題時,問題狀態的表示及優化;提高了程序的速度,節省了內存消耗。便于使用搜索策略,在解空間中快速尋找更優解。

不足:當問題規模增大時,使用狀態壓縮可能也無法完全表示所有的狀態。例如用康拓展開表示N元序列的狀態時,當序列多一個元素,問題狀態空間將乘以(N + 1),這個狀態增加是非常快的。需要使用其他方法解決問題,或者找到更優的狀態表示方法。

總結

在計算機程序設計中,狀態壓縮將問題的表象狀態抽象成了簡潔的形式化狀態,便于計算機處理。狀態壓縮是一種思想。實現狀態壓縮的方法很多。不同的問題往往需要考慮不同的狀態表示及轉換方法。在解決問題時,注意總結經驗。

注解:

[1] 李曉宇 鄭州大學信息工程學院老師

[2] 秦文杰 鄭州大學信息工程學院軟件工程系2015級2班的一個學生,學號20152480225

[3] 康拓展開和康拓逆展開的算法實現,百度百科鏈接

https://baike.baidu.com/item/%E5%BA%B7%E6%89%98%E5%B1%95%E5%BC%80/7968428?fr=aladdin

[4] Flip Game 翻轉棋子,北京大學在線測評系統 第1753題。鏈接

http://poj.org/problem?id=1753

[5] 解決Flip Game問題的源碼(C++語言)鏈接

https://github.com/zzuwenjie/coding18/blob/master/OJ/poj1753.cpp

[6] Hihcoder Offer收割19th 數組重排3 題目鏈接(需登錄查看)

https://hihocoder.com/problemset/problem/1539

[7] Hihocoder Offer收割19th 數組重排3,解題源碼鏈接

https://github.com/zzuwenjie/coding18/blob/master/OJ/hihocoder19_1539.cpp

猜你喜歡
計算機思想
轉化思想的應用
思想之光照耀奮進之路
華人時刊(2022年7期)2022-06-05 07:33:26
思想與“劍”
當代陜西(2021年13期)2021-08-06 09:24:34
計算機操作系統
穿裙子的“計算機”
趣味(數學)(2020年9期)2020-06-09 05:35:08
基于計算機自然語言處理的機器翻譯技術應用與簡介
科技傳播(2019年22期)2020-01-14 03:06:34
計算機多媒體技術應用初探
科技傳播(2019年22期)2020-01-14 03:06:30
艱苦奮斗、勤儉節約的思想永遠不能丟
人大建設(2019年4期)2019-07-13 05:43:08
“思想是什么”
當代陜西(2019年12期)2019-07-12 09:11:50
信息系統審計中計算機審計的應用
消費導刊(2017年20期)2018-01-03 06:26:40
主站蜘蛛池模板: 九九免费观看全部免费视频| 日本成人福利视频| 亚洲AⅤ无码日韩AV无码网站| 91成人免费观看| 国产精品私拍99pans大尺度| 免费A级毛片无码无遮挡| 欧美日韩一区二区在线播放| 谁有在线观看日韩亚洲最新视频 | 九九久久精品免费观看| 丰满人妻一区二区三区视频| 国产成人免费观看在线视频| 亚洲无线视频| 伊人婷婷色香五月综合缴缴情| 高清精品美女在线播放| 一区二区三区四区精品视频 | 国产精品污污在线观看网站| 人人91人人澡人人妻人人爽 | 久久www视频| 精品91视频| 日本午夜网站| 久久亚洲精少妇毛片午夜无码| igao国产精品| 呦女亚洲一区精品| 精品国产美女福到在线直播| 毛片一区二区在线看| 精品久久高清| 四虎永久在线视频| 精品成人一区二区三区电影| 色噜噜中文网| 伊人精品成人久久综合| 人妻丰满熟妇啪啪| 欧美一级高清免费a| 全部免费毛片免费播放| 日韩国产亚洲一区二区在线观看| 99精品久久精品| 精品国产福利在线| 国产真实乱子伦视频播放| 国产在线无码av完整版在线观看| 中文字幕在线看| 婷婷六月综合网| 狠狠色婷婷丁香综合久久韩国| 一级毛片在线播放免费观看| 2021无码专区人妻系列日韩| 波多野结衣一区二区三区四区视频| 日韩AV无码免费一二三区| 黄色网页在线观看| 成人精品亚洲| 91成人在线观看视频| 色婷婷成人| 一本色道久久88| 久久这里只精品国产99热8| A级毛片高清免费视频就| 国产在线观看第二页| 精品无码一区二区三区在线视频| 亚洲国产成人麻豆精品| 88av在线播放| 色婷婷在线影院| 国产第二十一页| 中文字幕中文字字幕码一二区| 欧美国产日韩一区二区三区精品影视| 欧美国产综合色视频| 成人在线综合| 亚洲欧美日韩中文字幕一区二区三区| 青青青视频蜜桃一区二区| 久久99国产视频| 巨熟乳波霸若妻中文观看免费 | 亚洲精品国产成人7777| 国产一区二区福利| 国产一区二区三区日韩精品| 亚卅精品无码久久毛片乌克兰| 伊人蕉久影院| 国产高清自拍视频| 极品国产一区二区三区| 91国内视频在线观看| 日本一区二区三区精品国产| 三级毛片在线播放| 在线免费亚洲无码视频| 亚洲国产中文精品va在线播放| 高清国产va日韩亚洲免费午夜电影| 国产激爽大片在线播放| 国产极品嫩模在线观看91| 国产一级在线观看www色|