<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    emu in blogjava

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      171 隨筆 :: 103 文章 :: 1052 評論 :: 2 Trackbacks
    問題是這樣的:從1到100000中任意拿掉兩個(gè)數(shù)字,把剩下99998個(gè)數(shù)的順序打亂并且放到數(shù)組中,要求只掃描一遍,把這個(gè)兩個(gè)數(shù)找出來,可以使用最多不超過5個(gè)局部變量,不能使用數(shù)組變量并且不能改變數(shù)組的值。

    開始老擔(dān)心溢出問題,最簡單的方法不敢用,老想另辟蹊徑。最后發(fā)現(xiàn)擔(dān)心是多余的,這里需要用到的數(shù)只是稍微超過32位而已,大多數(shù)高級語言都能很輕松的處理64位大整數(shù),連javascript也可以處理54位的大整數(shù)而不丟失精度,遠(yuǎn)遠(yuǎn)超過了這個(gè)問題的規(guī)模。

    這里特地把計(jì)算范圍擴(kuò)大了5倍來檢驗(yàn)溢出問題。規(guī)模再大的時(shí)候我的IE計(jì)算時(shí)間超過5秒開始要警告了。為了代碼簡潔,打亂次序使用了效率很低的sort方法,大量的時(shí)間都消耗在這一步。把排序參數(shù)調(diào)整為0.8(而不是0.5)主要是為了減少排序計(jì)算量。

    <HTML>
    <BODY>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    var n=500000;//n是常數(shù),不算臨時(shí)變量。
    var ar=[];//這是輸入數(shù)據(jù),不算臨時(shí)變量
    for(var i=0;i<n;i++){
        ar.push(i
    +1)
    }
    //i是生成輸入數(shù)據(jù)使用的,不算臨時(shí)變量
    //
    隨機(jī)抽取掉兩個(gè)數(shù)
    document.write("抽掉的第1個(gè)數(shù)是:"+ar.splice(Math.floor(Math.random()*ar.length),1))
    document.write(
    "<br>抽掉的第2個(gè)數(shù)是:"+ar.splice(Math.floor(Math.random()*ar.length),1))
    //打亂順序
    ar.sort(function(){return Math.random()-.8})
    //使用了3個(gè)臨時(shí)變量
    var t1=0,t2=0,t3;
    for(t3=ar.length-1;t3>=0;t3--){
        t1
    =t1+ar[t3];
        t2
    =t2+(t3+1)*(t3+1)-ar[t3]*ar[t3];
    }
    t2
    =t2+n*n*2-n*2+1;
    document.write(
    "<br>計(jì)算得到兩個(gè)數(shù)是:<br>"+(((n+1)*n/2-t1)+Math.sqrt(2*(t2)-((n+1)*n/2-t1)*((n+1)*n/2-t1)))/2+"<br>"+(((n+1)*n/2-t1)-Math.sqrt(2*(t2)-((n+1)*n/2-t1)*((n+1)*n/2-t1)))/2)
    //-->
    </SCRIPT>
    </BODY>
    </HTML>
    posted on 2010-08-02 16:49 emu 閱讀(2032) 評論(3)  編輯  收藏 所屬分類: DHTML和JAVASCRIPT 技術(shù)google編程大賽模擬題及入圍賽真題

    評論

    # re: 差點(diǎn)被燕潘考倒了 2011-05-08 14:09 程良
    我先沒看懂你的算法
    我先想到得是積x*y,
    應(yīng)該也行的哈。要多用個(gè)變量就。  回復(fù)  更多評論
      

    # re: 差點(diǎn)被燕潘考倒了 2012-08-02 10:41 emu
    http://www.closetou.com/find.html

    整掉3個(gè)數(shù)的解法  回復(fù)  更多評論
      

    # re: 差點(diǎn)被燕潘考倒了 2013-09-10 11:21 meteoric_cry
    @emu

    http://www.closetou.com/find.html 這個(gè)網(wǎng)址打不開了..  回復(fù)  更多評論
      

    主站蜘蛛池模板: 亚洲韩国在线一卡二卡| 日韩亚洲人成在线综合日本| 亚洲伊人色一综合网| 日本xxxx色视频在线观看免费| 亚洲午夜无码久久| 全免费毛片在线播放| 亚洲人成电影在线观看网| 91手机看片国产永久免费| 亚洲成av人片在线看片| 日本妇人成熟免费中文字幕| 亚洲午夜理论片在线观看| 国内精品免费视频自在线| 亚洲av无码专区在线观看下载| 日韩免费视频一区| 黄色网页在线免费观看| 成年性生交大片免费看| 亚洲a∨无码精品色午夜| 亚洲国产精品视频| 久久久精品午夜免费不卡| 久久综合亚洲色一区二区三区| 手机在线看永久av片免费| 亚洲AV电影天堂男人的天堂| 亚洲一区日韩高清中文字幕亚洲| 国产色无码精品视频免费| 亚洲国产成人久久77| 国产老女人精品免费视频| aa毛片免费全部播放完整| 亚洲精品动漫在线| 国产成人高清精品免费软件| 国产无遮挡色视频免费观看性色| 亚洲视频免费在线观看| 妞干网免费视频在线观看| 72pao国产成视频永久免费| 亚洲国产香蕉碰碰人人| 女人毛片a级大学毛片免费| 国产精品无码永久免费888| 亚洲视频中文字幕在线| 国产精品高清全国免费观看| 国产精品免费福利久久| 亚洲AV无码专区在线电影成人 | 岛国大片免费在线观看|