E81086713E446D36F62B2AA2A3502B5EB155

          Java雜家

          雜七雜八。。。一家之言

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            40 Posts :: 1 Stories :: 174 Comments :: 0 Trackbacks
          過道里依次掛著標號是1,2,3, ......,100的電燈泡,開始它們
          都是滅著的。當第一個人走過時,他將標號為 1 的倍數的電燈泡的開關
          線拉了一下;當第二個人走過時,他將標號為 2 的倍數的電燈泡的開關
          線拉了一下;當第三個人走過時,他將標號為 3 的倍數的電燈泡的開關
          線拉了一下;......  如此進行下去,當第一百個人走過時,他將標號為
          100 的倍數的電燈泡的開關線拉了一下。
          問:當第一百個人走過后,過道里亮著的電燈泡標號是多少?


          我的思路:
          設標號為K的燈泡被拉了L(K)次,那么當L(K)為奇數的時候,燈泡是亮的。
          那么那些標號被拉了奇數次呢?
          K=1時,很顯然是只拉了1次,最后是亮的。
          其次K>=2時,據題意,K號燈第1次,和第K次肯定是拉下了,其余的只會被第K的因子次拉,
          據因式分解定理,數K分解為
          K=p1^(n1)*p2^(n2)*.....pi^(ni)
          其中p1,p2,...pi為素數。
          那么,K有那些因子呢?
          其實可以考慮任一個因子,他可能是從n1個p1中選若干個(0個到n1個),從n2個p2中選若干個。。。。。(當全是0個的時候,這個特殊的因子是1)
          這樣,根據乘法原理,總共有L(K)=(n1+1)*(n2+1)*(n3+1).....
          比如,12=2^2*3
          一種有3*2=6個因子,他們是1,2,3,4,6,12.

          現在考慮要使L(K)為奇數,那么n1,n2,n3不能有一個是奇數,或則,有一個ni+1為偶數,而偶數與任何數相乘仍為偶數。
          從而,n1,n2,n3都為偶數,都能被2除。
          因為n1,n2,n3都為偶數,顯然該數必須是個平方數,可寫成K=(X)^2.
          從而,1,4,9,16,25,36,49,64,81,100最后是亮的。

          posted on 2008-03-05 15:00 DoubleH 閱讀(2139) 評論(7)  編輯  收藏 所屬分類: Memorandum

          Feedback

          # re: 有意思的“電燈泡問題” 2008-03-07 10:51 別問
          真無聊,還不如出去轉轉  回復  更多評論
            

          # re: 有意思的“電燈泡問題” 2008-03-07 10:54 vole
          good analysis!!!  回復  更多評論
            

          # re: 有意思的“電燈泡問題” 2008-03-07 12:04 長大不回家
          我覺得應該這樣,for i from 2 to 100;不代表這些燈泡標號,for j=2 to i,if(i%j==0)k++;如果最后k為偶數則燈的開的  回復  更多評論
            

          # re: 有意思的“電燈泡問題”[未登錄] 2008-03-08 22:05 Ryan
          簡單問題復雜化了,燈還亮的說明拉了奇數次,只要考察一下什么數有奇數個因數就可以了!  回復  更多評論
            

          # re: 有意思的“電燈泡問題” 2008-03-09 11:58 ZelluX
          小學“趣味數學”常見題。。。  回復  更多評論
            

          # re: 有意思的“電燈泡問題” 2009-08-13 22:36 嘎嘎
          @Ryan
          正解  回復  更多評論
            

          # re: 有意思的“電燈泡問題”[未登錄] 2009-10-24 17:26 張云
          import java.util.ArrayList;
          import java.util.List;


          public class Lamp {
          private boolean isOn = false;
          int id;
          static int count = 0;
          public Lamp(int id) {
          this.id = id;
          }
          private static List<Lamp> lamps = new ArrayList<Lamp>();



          public static void main(String args[]) {
          for(int i=0; i<100; i++) {
          Lamp lamp = new Lamp(i);
          lamps.add(lamp);
          }

          for(int i=0; i<100; i++) {
          for(int j=1; j<=100; j++) {
          if((i+1)%j == 0) {
          lamps.get(i).change();
          }
          }
          }

          for(int i=0; i<100; i++) {
          System.out.println(lamps.get(i));
          }

          for(int i=0; i<100; i++) {
          if(lamps.get(i).isOn == true) {
          count ++;
          }
          }
          System.out.println("there are "+ count + " is on");
          }

          public void change() {
          if(isOn == false) {
          isOn = true;
          }
          else {
          isOn =false;
          }
          }

          public String toString() {
          return this.id + ":" + this.isOn;
          }
          }



          ---------------------------------------------
          0:true
          1:false
          2:false
          3:true
          4:false
          5:false
          6:false
          7:false
          8:true
          9:false
          10:false
          11:false
          12:false
          13:false
          14:false
          15:true
          16:false
          17:false
          18:false
          19:false
          20:false
          21:false
          22:false
          23:false
          24:true
          25:false
          26:false
          27:false
          28:false
          29:false
          30:false
          31:false
          32:false
          33:false
          34:false
          35:true
          36:false
          37:false
          38:false
          39:false
          40:false
          41:false
          42:false
          43:false
          44:false
          45:false
          46:false
          47:false
          48:true
          49:false
          50:false
          51:false
          52:false
          53:false
          54:false
          55:false
          56:false
          57:false
          58:false
          59:false
          60:false
          61:false
          62:false
          63:true
          64:false
          65:false
          66:false
          67:false
          68:false
          69:false
          70:false
          71:false
          72:false
          73:false
          74:false
          75:false
          76:false
          77:false
          78:false
          79:false
          80:true
          81:false
          82:false
          83:false
          84:false
          85:false
          86:false
          87:false
          88:false
          89:false
          90:false
          91:false
          92:false
          93:false
          94:false
          95:false
          96:false
          97:false
          98:false
          99:true
          there are 10 is on
            回復  更多評論
            

          主站蜘蛛池模板: 托克托县| 抚顺市| 凉城县| 棋牌| 四平市| 梁平县| 晋城| 安阳县| 涟源市| 天祝| 奇台县| 朝阳市| 阜新| 云浮市| 泰宁县| 高阳县| 兴义市| 宿迁市| 卢龙县| 河池市| 五河县| 合作市| 浮梁县| 房产| 嘉善县| 平昌县| 嘉兴市| 新龙县| 承德县| 巴东县| 伽师县| 门源| 饶阳县| 赤城县| 溧阳市| 东山县| 资阳市| 高安市| 涡阳县| 长春市| 玉门市|