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

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

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

    emu in blogjava

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

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

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

    <HTML>
    <BODY>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    var n=500000;//n是常數,不算臨時變量。
    var ar=[];//這是輸入數據,不算臨時變量
    for(var i=0;i<n;i++){
        ar.push(i
    +1)
    }
    //i是生成輸入數據使用的,不算臨時變量
    //
    隨機抽取掉兩個數
    document.write("抽掉的第1個數是:"+ar.splice(Math.floor(Math.random()*ar.length),1))
    document.write(
    "<br>抽掉的第2個數是:"+ar.splice(Math.floor(Math.random()*ar.length),1))
    //打亂順序
    ar.sort(function(){return Math.random()-.8})
    //使用了3個臨時變量
    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>計算得到兩個數是:<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 閱讀(2053) 評論(3)  編輯  收藏 所屬分類: DHTML和JAVASCRIPT 技術 、google編程大賽模擬題及入圍賽真題

    評論

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

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

    整掉3個數的解法  回復  更多評論
      

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

    http://www.closetou.com/find.html 這個網址打不開了..  回復  更多評論
      

    主站蜘蛛池模板: 亚洲丁香色婷婷综合欲色啪| 99久久免费精品国产72精品九九| 黄色免费网站在线看| 午夜亚洲乱码伦小说区69堂| 一个人看的www免费高清| 国产免费爽爽视频在线观看| 很黄很色很刺激的视频免费| 亚洲Av无码国产情品久久| 自拍偷自拍亚洲精品情侣| 亚洲avav天堂av在线网爱情| 亚洲精品无码久久久久A片苍井空 亚洲精品无码久久久久YW | 亚洲国产欧洲综合997久久| 一区二区三区免费精品视频 | 四虎永久在线观看免费网站网址| 亚洲三级电影网站| MM1313亚洲精品无码久久| 99爱在线观看免费完整版| 国产视频精品免费| 亚洲成亚洲乱码一二三四区软件| 亚洲1区1区3区4区产品乱码芒果| 五月亭亭免费高清在线| 免费播放春色aⅴ视频| 亚洲精品午夜视频| 九九综合VA免费看| 亚洲精品美女久久久久99| 鲁啊鲁在线视频免费播放| 黑人大战亚洲人精品一区| 84pao国产成视频免费播放| 国产AV无码专区亚洲AV漫画 | 久久青草精品38国产免费| 全部免费毛片在线| 中文在线免费看视频| 午夜小视频免费观看| 亚洲黑人嫩小videos| A级毛片高清免费视频在线播放| 国产jizzjizz视频免费看 | 亚洲精品永久在线观看| 国产99视频免费精品是看6| 99免费在线视频| MM131亚洲国产美女久久| 亚洲AV日韩AV永久无码色欲|