• <input id="2bncg"><div id="2bncg"></div></input>
    <video id="2bncg"><dfn id="2bncg"></dfn></video>
  • <video id="2bncg"></video>
        1. <source id="2bncg"><menu id="2bncg"><kbd id="2bncg"></kbd></menu></source>

          <b id="2bncg"><address id="2bncg"></address></b>

          <source id="2bncg"><address id="2bncg"></address></source>
          <video id="2bncg"></video>
          筆趣閣 > 都市小說 > 重生學神有系統 > 第247章 對拍、Day1第三題

          第247章 對拍、Day1第三題(1 / 2)

          沒錯,剛才的猜想是憑直覺和少量筆算搞出來的。

          要想驗證自己的猜想,除了數學證明,最實用的方式就是對拍。

          所謂對拍程序,通俗的說法,就是數據比較器。

          方法很簡單。

          將窮舉暴力搜索版本的代碼,編譯成可執行文件a;

          將運用了猜想,優化后的代碼編譯成b;

          然后編寫一個隨機數據生成器,命名為rand;

          接下來,就可以制作對拍程序了。

          代碼的主體是個有限次的循環。

          循環體內部,核心部分是幾個system()函數。

          先調用“./rand“生成隨機數據,存入s.in,再分別調用a、b,讀取s.in,輸出a.out和b.out兩個文本文件。

          最后調用“diffa.outb.out“,進行比較。

          如果發現兩個文本文件不一致,則說明優化后的程序有問題,于是提示錯誤信息以及出錯原因。

          這就是對拍,號稱最強的調試辦法,比GDB之類的調試工具好用多了。

          江寒寫完對拍之后,設了一個60000次的循環,花了2分多鐘跑完一遍。

          結果沒有輸出任何錯誤信息,這表示自己的猜想是完全成立的。

          下一步,就該把優化后的代碼擴展到高精度了。

          這一步對很多選手來說,都是個難點,很容易大意之下,寫漏一些條件。

          比如位數的最大值處理得不好,或者犯下其他的小失誤,就會導致運算出bug。

          倒也不一定完全不能運行,只是碰到特殊數據時,可能會得出不正確的輸出。

          運氣好的時候,也能正常得分,運氣差一點,可能就會丟分了。

          高精度運算的基本原理,是模擬手工列豎式計算,其中要考慮數位對齊和進位、借位處理。

          這種代碼在網上有的是,但運算效率上,那些比較常見的代碼,就有點不敢恭維了。

          江寒在刷《NOIP寶典》的時候,自己研究出來了一種高精度算法,可以說是不傳之秘,比網上能找到的示范代碼,要精簡和巧妙很多。

          在這道題里,江寒要做的就是模擬手算高精度乘除法。

          如果不打高精度,那么最多僅能滿足40%的數據要求。

          這道題滿分100,能看懂題目,并寫出暴力搜索算法,就能20分。

          能發現規律,寫出快速排序,就能得到40分。

          對于實力有限,有自知之明的選手,做到這里就可以收手了。

          只有那些對自己足夠自信,且能熟練編寫代碼進行高精度運算的人,才會繼續改造算法,以沖擊高分。

          高精度的乘法好寫,除法就稍微有點難度了。

          這里又有兩種選擇,一個是寫高精除高精,滿足100%的輸入數據要求。

          要么就退而求其次,被除數為高精度,除數為單精度,這樣也可以滿足至少60%的輸入數據要求。

          寫對高精除以單精,能得60分,寫出高精除以高精,才有機會得到滿分。

          但高精除以高精,是相當復雜的,一旦寫錯、寫漏了條件,說不定反而得不償失,連60分都得不到。

          所以,是保證到手60分,還是冒著浪費時間的風險,沖擊一下滿分?

          對于其他人來說,這當然是個艱難的抉擇,但對于江寒來說,根本無需糾結。

          反正時間也有的是,當然是選擇后者了。

          江寒花了大約半個小時,寫出了雙高精除法的版本,并調試通過。

          然后設計了幾組極限數值,代入進去運算,結果與筆算結果完全一致。

          邊界條件沒問題,這個程序出問題的幾率就相當低了。

          倒也不是不能用系統作弊。

          做出爆搜程序后,可以通過20%的校驗點,系統就提示了一次獲得“學以致用”積分。

          最新小說: 頂級世家!我音系成神?滅異族! 咬定寶山不放松 在線追妻:陸先生寵婚365式 斗羅:學霸養成系統什么鬼 人在柯南,我真不是悍匪 我,內測服最終BOSS! 上山十幾年,下山即無敵 精靈世界的工匠大師 低等雌性爆紅全星際 萬金娘子
        2. <input id="2bncg"><div id="2bncg"></div></input>
          <video id="2bncg"><dfn id="2bncg"></dfn></video>
        3. <video id="2bncg"></video>
              1. <source id="2bncg"><menu id="2bncg"><kbd id="2bncg"></kbd></menu></source>

                <b id="2bncg"><address id="2bncg"></address></b>

                <source id="2bncg"><address id="2bncg"></address></source>
                <video id="2bncg"></video>
                最近免费观看高清韩国日本大全