第章還?顧凡繼續解釋:麼計算機具體麼儲數呢?
這就之所說‘浮點數’,浮點,數點以浮動。
就比如這個進制數,就以表示為x^,這點類似于數學科學計數法。
程序,為讓進制用到科學計數法,并且規範化,就保證數點側隻位,并且必須為,們目絕數計算機所使用浮點數,都IEEE制定國際标準,采用符号位+指數位+尾數格式。
總之,由于進制到進制之間轉化,所以按照這種方式來計算,。+。并等于完。,因為計算機,很數都無法用完進制來表示,所以隻能用似數方式來儲,麼兩個似數相加,也隻能個似數。
進制轉進制計算,然後再轉進制輸,這就導緻後兩個數相等況。
莉莉絲眉頭緊皺:為甚麼能用進制精确計算呢!
顧凡輕咳兩聲:這個……如果從頭解釋『計算機為甚麼使用進制』話,就太複雜,時半會說清。
但針對這個問題,以從另個角度來說為甚麼會容忍這種誤差,因為這種誤差本就消除。
即便進制,也會現許無法除盡況。進制隻能夠精确表達能夠除盡數字,但對于、這樣數字,進制也就無能為力,同樣也會産誤差。
所以管采用甚麼樣進制,誤差都必然。
莉莉絲到腦冒煙:好吧,,計算機裡面。+。≠。,麼這個bug又麼回事?
顧凡長氣:莉總能理解這點話,這個bug解釋起來就稍微容易些。
簡單來說就,程序員寫動态難度代碼時,沒考慮到這種後面還帶數極端特殊況,沒為這種特例專門寫個判定,因此數值互相轉化過程,程序無法判定這個數字具體處于個難度區間,就直接為最難度。
站角度來,當然還處于以區間,但對于程序來說卻并如此。也就說,。+。=,溢。正常區間。
莉莉絲簡直瞠目結舌,雖然仍舊無法接受,但從程序角度來,這個bug現還真就理。
而且,這并非顧凡信開,其遊戲也現過類似bug。
莉莉絲很又識到問題:但假設真如所說,這個特例應該很難觸發才對吧?隻進入boss時候難度數值剛好卡帶數況,才會觸發。為甚麼到遊戲裡,都能觸發!!
顧凡輕咳兩聲:這個……。
還打開《謊言之血》程序,仔細查『狂信者』相關代碼。
莉總,這因為狂信者這個怪物投技特殊設定。
這個投技,需玩動掙脫。按照動态難度設定,越掙脫玩就越菜,因此動态難度會随着投技時間增長而增長,這很理吧?
莉莉絲:嗯……理。
動态難度《謊言之血》最基礎設定,簡單來說就,越菜玩難度越。
麼從投技角度來考慮,投技玩肯定菜,投技還掙脫很玩就更菜。因此,投技持續期間持續增長動态難度,這個非常理設計。
顧凡繼續說:但,如果直持續增加動态難度,似乎也太理。
對于個投技來說,這種懲罰措施未免太嚴厲些。
所以,為符動态難度原本設計圖,也為避免些莫名其妙bug,程序對這個投技動态難度數值進限制,讓最隻能增長到當難度等級,能增長到個難度等級。
隻當玩再被其怪物打時候,才能突破這個數值,來到個動态難度等級。
這也算個比較理設定。
莉莉絲微微點頭:嗯……似乎……
顧凡繼續說:但這兩個問題疊加起時候,就現個全問題。
就當玩保持着這個數值直接進入boss戰時候,系統會對當動态難度進次判定,然後……就沒然後。
莉莉絲由得目瞪呆,暫時失語言。
從原理,已經勉強接受這個bug。