2010年3月5日 星期五

2010/03/08 子集合

輸入一變數N,再輸入N 個數字成為一個含有N 個數的集合A,


然後輸出所有這個A 集合的子集合。

Ex: N=3, A { 1, 2, 3 }

ANS: { } <--- 空集合

{ 1 },{ 2 },{ 3 }

{ 1, 2 },{ 1, 3 },{ 2, 3 }

{ 1, 2, 3 }

7 則留言:

  1. 我發現 這是 數學第3單元的機率,不過 應該不是難題

    回覆刪除
  2. 1.這算是「排列組合」吧。

    回覆刪除
  3. 質數對 (p, p + 2) 稱為孿生質數。
    例如:
    (3, 5), (5, 7), (11, 13), (17, 19), (29, 31), (41, 43), (59, 61), (71, 73), (101, 103)
    請找出40組,這樣的孿生質數吧。

    回覆刪除
  4. 考拉茲猜想,又稱為3n+1猜想、角谷猜想、哈塞猜想、烏拉姆猜想或敘拉古猜想,是指對於每一個正整數,如果它是奇數,則對它乘3再加1,如果它是偶數,則對它除以2,如此循環,最終都能夠得到1。

    取一個數字
    如n = 6,根據上述數式,得出 6→3→10→5→16→8→4→2→1 。(步驟中最高的數是16,共有7個步驟)
    如n = 11,根據上述數式,得出 11→34→17→52→26→13→40→20→10→5→16→8→4→2→1。(步驟中最高的數是40,共有13個步驟)
    如n = 27,根據上述數式,得出 : 27→82→41→124→62→31→94→47→142→71→214→107→322→161→484→242→121→364→182→91→274→137→412→206→103→310→155→466→233
    →700→350→175→526→263→790→395→1186→593→1780→890→445→1336→668→334→167→502→251→754→377→1132→566→283→850→425→1276
    →638→319→958→479→1438→719→2158→1079→3238→1619→4858→2429→7288→3644→1822→911→2734→1367→4102→2051→6154→3077→9232
    →4616→2308→1154→577→1732→866→433→1300→650→325→976→488→244→122→61→184→92→46→23→70→35→106→53→160→80→40→20→10
    →5→16→8→4→2→1。(步驟中最高的數是9232,共有111個步驟)
    考拉茲猜想稱,任何正整數,經過上述計算步驟後,最終都會得到 1 。

    回覆刪除
  5. 質數p為索菲熱爾曼質數若2p + 1亦為質數
    從1到10000共有190個索菲熱爾曼質數(OEIS:A005384):
    2 3 5 11 23 29 41 53 83 89 113 131
    173 179 191 233 239 251 281 293 359 419 431 443
    491 509 593 641 653 659 683 719 743 761 809 911
    953 1013 1019 1031 1049 1103 1223 1229 1289 1409 1439 1451
    1481 1499 1511 1559 1583 1601 1733 1811 1889 1901 1931 1973
    2003 2039 2063 2069 2129 2141 2273 2339 2351 2393 2399 2459
    2543 2549 2693 2699 2741 2753 2819 2903 2939 2963 2969 3023
    3299 3329 3359 3389 3413 3449 3491 3539 3593 3623 3761 3779
    3803 3821 3851 3863 3911 4019 4073 4211 4271 4349 4373 4391
    4409 4481 4733 4793 4871 4919 4943 5003 5039 5051 5081 5171
    5231 5279 5303 5333 5399 5441 5501 5639 5711 5741 5849 5903
    6053 6101 6113 6131 6173 6263 6269 6323 6329 6449 6491 6521
    6551 6563 6581 6761 6899 6983 7043 7079 7103 7121 7151 7193
    7211 7349 7433 7541 7643 7649 7691 7823 7841 7883 7901 8069
    8093 8111 8243 8273 8513 8663 8693 8741 8951 8969 9029 9059
    9221 9293 9371 9419 9473 9479 9539 9629 9689 9791

    回覆刪除
  6. Dim Ans As Boolean
    Private Sub Form_Load()
    Open App.Path & "/out.txt" For Output As #2
    For i = 1 To 1500
    Ans = True
    j = i + 2
    Call check(i)
    Call check(j)
    If Ans = True Then Print #2, "(" & i & "," & j & ")": N = N + 1
    If N = 40 Then Exit For
    Next i
    Print #2, "共找到" & N & "組。"
    Close #2
    End Sub

    Public Sub check(a)
    For i = 2 To a ^ 0.5
    If a Mod i = 0 Then Ans = False
    Next i
    End Sub
    40組找到
    而在1500內有51組

    回覆刪除
  7. 高仔好,
    這樣的數學題,用電腦解起來,倒是不困難。
    你的程式ok,但是,不需要的重複多了些。
    例如 for i = 1 to 1500
    ->
    for i = 3 to 1500 step 2
    再來是在check(j)的這部分,這個j做的結果,並沒有拿來下次使用。

    將這些題目,另外post成一題,再將你們的程式給放過去吧。還有,40組找到了,也列出來吧。

    前前個指導老師倒是說,一天一題,似乎有些多,在訓練的前段ok,但是,後來每題都要想得時間多,會有些不夠時間。
    (這個前前指導老師是董老師)

    回覆刪除