2015年4月26日 星期日

複習組合數學的一些基礎,特別有關「多重組合」

複習過下列排列組合的基礎後,

試著用理論推導及程式模擬的方法,解決以下的問題:

小林在20156月份有4天休假可排,公司規定「休假日不可連續」,而且「最多只能2天在周末(星期六、星期日)」,另外,農曆的「初一」及「十五」公司要拜拜,不能排休假。請問:

(1)小林有多少種排假的方式。

(2)寫一支小程式,列出所有的排假方式。

<<2015年6月 (農曆乙未年,羊年)>>
星期日星期一星期二星期三星期四星期五星期六
1
四月十五
2
四月十六
3
四月十七
4
四月十八
5
四月十九
6
四月廿
7
四月廿一
8
四月廿二
9
四月廿三
10
四月廿四
11
四月廿五
12
四月廿六
13
四月廿七
14
四月廿八
15
四月廿九
16
五月初一
17
五月初二
18
五月初三
19
五月初四
20
五月初五
21
五月初六
22
五月初七
23
五月初八
24
五月初九
25
五月初十
26
五月十一
27
五月十二
28
五月十三
29
五月十四
30
五月十五

複習組合數學的一些基礎。

.py


以下為呂老師的程式,請參考。

本程式作業到此結束。

https://www.dropbox.com/s/wyjcgzl6ecsjz10/ryVacation.py?dl=0


49 則留言:

  1. B0229041
    https://gist.github.com/anonymous/cf123c43cd7f9b7d88bd

    回覆刪除
    回覆
    1. Good, 搶頭香。
      程式再多加一些 comments 如何?

      刪除
  2. 我是黃宇薇 ,學號:B0229053
    作業在此,請欣賞
    https://gist.github.com/machia04541333/965d1e4ef6d07fbb0854

    回覆刪除
    回覆
    1. 哈哈,
      我喜歡你的
      byebye=[1,16,30]
      #初一十五的日子
      程式越寫越好了,
      註解很多,很不錯。

      刪除
    2. 謝謝老師 會加油的~

      刪除
  3. 我是蘇永恩 ,學號:B0229043
    作業在此,請欣賞
    https://gist.github.com/Auroral/fb181dff026692d7a426

    回覆刪除
    回覆
    1. 輸出的方式很特別,整個月曆印出來還滿漂亮的,
      只是完全跑完還滿花時間的。
      另外程式所用的演算法看起來有點龐大,有時間的話也許可以再改改。

      刪除
  4. 我是鍾欣庭 ,學號:B0229018
    作業在此,請欣賞
    https://github.com/yiling654183lin/Probability-and-Statistics---assignment/blob/master/b0229018_calander.py

    回覆刪除
    回覆
    1. 你也用了byebye= [1,16,30],好玩耶,

      怎不乾脆用
      拜拜= [1,16,30]

      另外,這個 set() 相減的用法我以前也沒用過,
      算是在此向你學到的,感謝。
      realPossible=list(set(day)-set(weekend)-set(byebye))

      刪除
    2. 那些 for 迴圈 有點太「深」,
      看起來有點龐大,有時間的話也許可以再改改。

      刪除
    3. 很喜歡妳把下面這段「題目」抄在程式的開端,作為本程式的「摘要」,如此一來,這支程式似乎就有了獨立的性質,流傳到哪裡,人家都會知道它的作用、以及誕生的緣由。

      '''
      b0229018_calander.py
      寫一個程式計算出2015.6有四天休假可以排
      1.休假日不可連續
      2.最多只能2天在周末(星期六、星期日)
      3.農曆的「初一」及「十五」公司要拜拜,不能排休假
      求多少種,並列出所有組合
      2015/5/6
      '''

      刪除
    4. 不過其實set應該也只能在這轉換成list,因為此這次的情況似乎沒有重複,set中重複的東西並不會出現兩次,但是list可以,想來是因此list不能被減的原因了(又或者不知減掉哪一個的情況了)

      關於for太深這點,我還在想讓他怎麼樣才能縮成一行@@不過目前還沒想到,而我這種方法其實是換其他的天數就要重寫,似乎還是要import一些排列組合的通西才比較好

      刪除
  5. 我是林奕伶,學號:B0229015
    作業在此,請欣賞
    https://github.com/yiling654183lin/Probability-and-Statistics---assignment/blob/master/B0229015_hw3.py

    回覆刪除
    回覆
    1. import math 之後,好像都沒用到它呢!

      自己寫了 def fac(): 練習一下recursive 函數的寫法也不錯。

      其實 math 裡面就有了這個韓述了啊, math.factorial()

      for loop 太深,能否設法改改看?

      刪除
  6. 我是李亭葦 ,學號:B0229046
    作業在此,請欣賞
    https://gist.github.com/amy4li/60299e536000df65e955

    回覆刪除
    回覆
    1. X= itertools.permutations(剩餘日子,4)
      Y= list(X)
      L= len(Y)

      print(L) # ==> 93024

      print(Y)
      # 因為 Y 這個「list」太大,因此記憶體吃不消,
      # 特別是 print(Y) 又要用到螢幕資源,因此系統就!@#$%

      試試看不要 print(Y)
      應仍可用 for y in Y: ....
      或者乾脆直接用 for x in X: ...
      那是 python 的精華之一,叫做 'iterator',
      可消除 'list' 太占空間的缺點。

      刪除
    2. 好~謝謝老師讓我知道原因,我會試試看~

      刪除
  7. 我是賴晨堯 ,學號:B0229022
    作業在此,請欣賞
    https://gist.github.com/ben123son/d5e132f92ccec3b0a24a

    回覆刪除
    回覆
    1. 你的程式不能跑!!debug 一下吧!!

      刪除
  8. 我是何語倩,學號B0229017
    作業在此,請欣賞
    https://gist.github.com/YucianHe/45fb0878bdaeaf4cba4a

    回覆刪除
    回覆
    1. #休假的英文為leave,所以用leave為此Function取名

      代表你也開始學會要謹慎為函數取名了,不錯唷!

      刪除
  9. 我是許文瑄,學號B0229057
    作業在此,請欣賞:
    https://gist.github.com/anonymous/62563e7aa40eb8b1c594

    回覆刪除
  10. 我是莊雲翔,學號B0229016
    作業在此,請欣賞:
    https://gist.github.com/yunsiang/08cf1036807323fea839

    回覆刪除
  11. 我是黃威翔,學號:B0229032
    作業在此,請欣賞
    https://gist.github.com/anonymous/ba8779c1b98da067ad8f

    回覆刪除
    回覆
    1. 這個程式應該是直接參考他人的程式,
      (幾乎是直接Copy&Paste)
      應該註明出處,否則原作者可以追究喔!!

      刪除
  12. 我是陳志榮,學號B0229030
    作業在此,請欣賞
    https://gist.github.com/JLDDER/92554c9e65b5108cccd5

    回覆刪除
  13. 我是李育綾,學號B0229014
    作業在此,請欣賞
    https://gist.github.com/anonymous/e6bffaf280f77e9cce2d

    回覆刪除
  14. 我是李孟紘,學號B0229028
    作業在此,請欣賞:
    https://gist.github.com/kingknight0921/109921967d3adba70b61

    回覆刪除
  15. 我是曾國維,學號B0229047
    作業在此,請欣賞:
    https://gist.github.com/d26000523/95a325d64139459114d0

    回覆刪除
  16. 以下為呂老師的程式,請參考。
    本程式作業到此結束。

    https://www.dropbox.com/s/wyjcgzl6ecsjz10/ryVacation.py?dl=0

    回覆刪除
  17. 我是林怡君,學號B0229025
    作業在此,請欣賞:
    https://gist.github.com/anonymous/4f38c8dcead19cb92d2a

    回覆刪除
  18. 我是林育如,學號B0229008
    作業在此,請欣賞:
    https://gist.github.com/yolin2015/473ba4bd573264efdb13

    回覆刪除
  19. 我是王奕翔,學號B0229049
    作業在此,請欣賞:

    https://gist.github.com/tommy90191/e998954059d9c6e30ef8

    回覆刪除
  20. 我是彭宇暄,學號B0229011
    作業在此,請欣賞:
    https://gist.github.com/Sero8139/288fbf191061cfedb465

    回覆刪除
  21. 作者已經移除這則留言。

    回覆刪除
  22. 我是王孝然,學號B0229013
    作業在此,請欣賞:
    https://gist.github.com/roger35972134/b99fb58f658c10fbb637

    回覆刪除
  23. 我是陳偉翔,學號B0229058
    作業在此,請欣賞:
    https://gist.github.com/anonymous/6028d0320082f244d467

    回覆刪除
  24. 我是陳冠彰,學號B0229035
    作業在此,請欣賞:
    https://gist.github.com/brett90063/b9a21b739e2a7ca19f16

    回覆刪除
  25. 我是章齊信,學號B0229050
    作業在此,請欣賞:
    https://gist.github.com/SamuelC0507/60f090d55d3429766b97
    Heard that better late than never and thus I still try!

    回覆刪除
  26. 作者已經移除這則留言。

    回覆刪除
  27. 我是許庭毓,學號B0229020
    作業在此,請欣賞:
    https://gist.github.com/B0229020/149848078b8eb2fe4da1

    非常抱歉作業都這麼晚交
    實在不太擅長,與同學討論後交出

    回覆刪除
  28. 我是王品盛,學號B0229040
    作業在此,請欣賞:
    https://gist.github.com/z355334/e6fae21a2b4e7c7fb014

    回覆刪除