Guest User

Untitled

a guest
Nov 21st, 2017
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.66 KB | None | 0 0
  1. {
  2. "cells": [
  3. {
  4. "cell_type": "markdown",
  5. "metadata": {},
  6. "source": [
  7. " # 第一題:\n",
  8. "題目:給定一個矩陣m,裡面的值都大於0。\n",
  9. "請將矩陣m裡大於等於1的數字都變成1,小於1的變成0。\n",
  10. " \n",
  11. "m = np.array([[0,1,10],[2,6,7]])\n",
  12. " \n",
  13. "提示:使用巢狀迴圈(nested loop)加判斷式"
  14. ]
  15. },
  16. {
  17. "cell_type": "code",
  18. "execution_count": 1,
  19. "metadata": {
  20. "collapsed": true
  21. },
  22. "outputs": [],
  23. "source": [
  24. "%matplotlib inline\n",
  25. "import numpy as np\n",
  26. "import matplotlib.pyplot as plt"
  27. ]
  28. },
  29. {
  30. "cell_type": "code",
  31. "execution_count": 2,
  32. "metadata": {},
  33. "outputs": [
  34. {
  35. "name": "stdout",
  36. "output_type": "stream",
  37. "text": [
  38. "[[0 1 1]\n",
  39. " [1 1 1]]\n"
  40. ]
  41. }
  42. ],
  43. "source": [
  44. "m = np.array([[0,1,10],[2,6,7]])\n",
  45. "for a in range(len(m)):\n",
  46. " for b in range(len(m[0])):\n",
  47. " if m[a][b] < 1:\n",
  48. " m[a][b] = 0\n",
  49. " else :\n",
  50. " m[a][b] = 1\n",
  51. "print(m)"
  52. ]
  53. },
  54. {
  55. "cell_type": "markdown",
  56. "metadata": {},
  57. "source": [
  58. " # 第二題:\n",
  59. "有A,B,C三個班級,每班皆有10個學生,期中考結束後,老師希望計算各班級每位學生的加權平均成績。\n",
  60. " \n",
  61. "請隨機產生3個班級的成績單,每班10人,共五科,權重為weights=[0.25,0.25,0.25,0.15,0.10]。\n",
  62. "請算出班級加權平均成績,並以一個array輸出。\n",
  63. " \n"
  64. ]
  65. },
  66. {
  67. "cell_type": "code",
  68. "execution_count": 3,
  69. "metadata": {},
  70. "outputs": [
  71. {
  72. "name": "stdout",
  73. "output_type": "stream",
  74. "text": [
  75. "[[[ 8 13 5 13 1]\n",
  76. " [ 3 49 97 35 52]\n",
  77. " [16 61 88 73 78]\n",
  78. " [80 66 66 10 43]\n",
  79. " [87 22 53 91 14]\n",
  80. " [57 49 74 61 38]\n",
  81. " [82 17 45 26 94]\n",
  82. " [ 7 53 81 80 17]\n",
  83. " [78 24 54 74 79]\n",
  84. " [72 23 29 24 58]]\n",
  85. "\n",
  86. " [[38 51 92 62 54]\n",
  87. " [37 90 37 10 14]\n",
  88. " [24 61 57 86 28]\n",
  89. " [38 24 57 20 95]\n",
  90. " [38 10 61 62 91]\n",
  91. " [19 57 28 38 73]\n",
  92. " [11 32 6 95 72]\n",
  93. " [90 53 71 19 34]\n",
  94. " [68 31 70 81 41]\n",
  95. " [ 9 96 39 81 52]]\n",
  96. "\n",
  97. " [[ 8 0 79 85 93]\n",
  98. " [13 30 56 70 17]\n",
  99. " [73 56 47 89 5]\n",
  100. " [50 72 9 34 62]\n",
  101. " [ 0 49 94 43 97]\n",
  102. " [ 5 81 73 14 24]\n",
  103. " [28 37 93 42 32]\n",
  104. " [85 98 57 77 66]\n",
  105. " [68 22 64 90 59]\n",
  106. " [95 18 5 91 86]]]\n",
  107. "[[ 8.55 47.7 60. 58.8 55.55 57.95 49.3 48.95 58. 40.4 ]\n",
  108. " [ 59.95 43.9 51.2 42.25 45.65 39. 33.7 59.75 58.5 53.35]\n",
  109. " [ 43.8 36.95 57.85 44.05 51.9 44.25 49. 78.15 57.9 51.75]]\n",
  110. "[[ 48.52 ]\n",
  111. " [ 48.725]\n",
  112. " [ 51.56 ]]\n"
  113. ]
  114. }
  115. ],
  116. "source": [
  117. "x = np.ones((3,10,5))\n",
  118. "x = np.random.randint(0,100,(3,10,5))\n",
  119. "weights = [0.25,0.25,0.25,0.15,0.10]\n",
  120. "print(x)\n",
  121. "y = np.dot(x, weights)\n",
  122. "print(y)\n",
  123. "z = np.ones((10,1))\n",
  124. "z = np.dot(y, z)/10\n",
  125. "print(z)"
  126. ]
  127. },
  128. {
  129. "cell_type": "markdown",
  130. "metadata": {},
  131. "source": [
  132. " # 挑戰題一:\n",
  133. "請定義一個全班高微成績的函式,輸入是一個(3, 30, 3)的array, \n",
  134. "表示3個班級中30位學生的成績(小考,期中考,期末考) 。\n",
  135. "\n",
  136. "目標輸出則是一個(3, 30, 1)的array,表示所有學生的期末成績,\n",
  137. "期末成績計算方式如下:\n",
  138. "\n",
  139. "1. 小考20%,期中考35%,期末考45% \n",
  140. "2. 期中考40%,期末考60%。 \n",
  141. "擇優作為期末成績\n",
  142. " \n",
  143. "Hint\n",
  144. "* 可以用雙重for迴圈 分別跑過班級跟人\n",
  145. "* 可以先設一個array裝算出來的成績\n",
  146. "* 記得要用return \n",
  147. "* 請做個測試,檢驗你的結果,方便同學 # 挑戰題一:\n",
  148. "請定義一個全班高微成績的函式,輸入是一個(3, 30, 3)的array, \n",
  149. "表示3個班級中30位學生的成績(小考,期中考,期末考) 。\n",
  150. "\n",
  151. "目標輸出則是一個(3, 30, 1)的array,表示所有學生的期末成績,\n",
  152. "期末成績計算方式如下:\n",
  153. "\n",
  154. "1. 小考20%,期中考35%,期末考45% \n",
  155. "2. 期中考40%,期末考60%。 \n",
  156. "擇優作為期末成績\n",
  157. " \n",
  158. "Hint\n",
  159. "* 可以用雙重for迴圈 分別跑過班級跟人\n",
  160. "* 可以先設一個array裝算出來的成績\n",
  161. "* 記得要用return \n",
  162. "* 請做個測試,檢驗你的結果,方便同學評分。評分。\n",
  163. " \n",
  164. " \n"
  165. ]
  166. },
  167. {
  168. "cell_type": "code",
  169. "execution_count": 6,
  170. "metadata": {},
  171. "outputs": [
  172. {
  173. "name": "stdout",
  174. "output_type": "stream",
  175. "text": [
  176. "[[[ 20.15]\n",
  177. " [ 63.95]\n",
  178. " [ 52.45]\n",
  179. " [ 23. ]\n",
  180. " [ 33.95]\n",
  181. " [ 77.75]\n",
  182. " [ 44. ]\n",
  183. " [ 55.65]\n",
  184. " [ 17.2 ]\n",
  185. " [ 76.6 ]\n",
  186. " [ 75.2 ]\n",
  187. " [ 65.8 ]\n",
  188. " [ 54.8 ]\n",
  189. " [ 65.8 ]\n",
  190. " [ 84.8 ]\n",
  191. " [ 74.15]\n",
  192. " [ 88.4 ]\n",
  193. " [ 70.15]\n",
  194. " [ 65. ]\n",
  195. " [ 86.6 ]\n",
  196. " [ 40.35]\n",
  197. " [ 15.9 ]\n",
  198. " [ 70.2 ]\n",
  199. " [ 59.6 ]\n",
  200. " [ 48.3 ]\n",
  201. " [ 50.15]\n",
  202. " [ 80.2 ]\n",
  203. " [ 50.35]\n",
  204. " [ 38. ]\n",
  205. " [ 61.6 ]]\n",
  206. "\n",
  207. " [[ 47.3 ]\n",
  208. " [ 28.6 ]\n",
  209. " [ 76.2 ]\n",
  210. " [ 47.6 ]\n",
  211. " [ 60.8 ]\n",
  212. " [ 53.6 ]\n",
  213. " [ 61.6 ]\n",
  214. " [ 70.4 ]\n",
  215. " [ 48.95]\n",
  216. " [ 49.85]\n",
  217. " [ 78. ]\n",
  218. " [ 71.2 ]\n",
  219. " [ 61.5 ]\n",
  220. " [ 58. ]\n",
  221. " [ 42.9 ]\n",
  222. " [ 62.8 ]\n",
  223. " [ 62.25]\n",
  224. " [ 56.55]\n",
  225. " [ 31.95]\n",
  226. " [ 42.4 ]\n",
  227. " [ 73.2 ]\n",
  228. " [ 60.4 ]\n",
  229. " [ 81.4 ]\n",
  230. " [ 37.05]\n",
  231. " [ 65.2 ]\n",
  232. " [ 67.5 ]\n",
  233. " [ 66.8 ]\n",
  234. " [ 17.4 ]\n",
  235. " [ 29. ]\n",
  236. " [ 45.65]]\n",
  237. "\n",
  238. " [[ 49.05]\n",
  239. " [ 60.05]\n",
  240. " [ 59.3 ]\n",
  241. " [ 32.85]\n",
  242. " [ 72.1 ]\n",
  243. " [ 58.4 ]\n",
  244. " [ 74.4 ]\n",
  245. " [ 75.6 ]\n",
  246. " [ 57.8 ]\n",
  247. " [ 42.45]\n",
  248. " [ 41.85]\n",
  249. " [ 44.2 ]\n",
  250. " [ 33.15]\n",
  251. " [ 83.6 ]\n",
  252. " [ 81.9 ]\n",
  253. " [ 85.6 ]\n",
  254. " [ 49.9 ]\n",
  255. " [ 7.85]\n",
  256. " [ 55.55]\n",
  257. " [ 54.65]\n",
  258. " [ 53.85]\n",
  259. " [ 54.6 ]\n",
  260. " [ 57.6 ]\n",
  261. " [ 77. ]\n",
  262. " [ 45.2 ]\n",
  263. " [ 62.85]\n",
  264. " [ 68.2 ]\n",
  265. " [ 65.9 ]\n",
  266. " [ 60.9 ]\n",
  267. " [ 12.8 ]]]\n"
  268. ]
  269. }
  270. ],
  271. "source": [
  272. "%matplotlib inline\n",
  273. "import numpy as np\n",
  274. "import matplotlib.pyplot as plt\n",
  275. "x = np.random.randint(0,100,(3,30,3))\n",
  276. "total = np.ones((3,30,1))\n",
  277. "for a in range(len(x)):\n",
  278. " for b in range(len(x[0])):\n",
  279. " m = np.dot(x[a][b],[0.2,0.35,0.45])\n",
  280. " n = np.dot(x[a][b],[0,0.4,0.6])\n",
  281. " if m > n :\n",
  282. " total[a][b][0] = m\n",
  283. " else :\n",
  284. " total[a][b][0] = n\n",
  285. "print(total)"
  286. ]
  287. },
  288. {
  289. "cell_type": "markdown",
  290. "metadata": {},
  291. "source": [
  292. " # 世紀魔鬼挑戰題(做完可以直接得到一百分):\n",
  293. "美食沙漠的餐點推薦系統\n",
  294. "Susan是個數學高手,每天專心研究高深數學理論,因此沒有時間想每一餐要吃什麽,\n",
  295. "請依照他的需求幫他做出各餐的推薦餐點。\n",
  296. " \n",
  297. "給定以下list:\n",
  298. "breakfast_list = ['古早味', '德合香', '布朗奇早餐', '星巴克', '小貓咪', '傳香飯糰', '米塔', '麥當勞', '摩斯', '7-11', '全家']\n",
  299. "11\n",
  300. "\n",
  301. "lunch_and_dinner_list = ['小公寓', '波波恰恰', '湯饌', '享窩咖啡', '湯包', '殺人魔王', '呷麵騎士', '提洛斯', '蝴蝶漾', '東京小城', '金鰭', '樂山', 'My麵屋', '李氏餐酒館', '里克', '水煎包', '憩賢樓', '高句麗', '魯智深', '敏忠', '大正亭', '阿里郎', '鬼匠', 'Juicy Bun', '滇味廚房']\n",
  302. "25\n",
  303. "\n",
  304. "high_price_list = ['星巴克', '摩斯', '小公寓', '享窩咖啡', '金鰭', '李氏餐酒館', '里克', 'Juicy Bun', '滇味廚房']\n",
  305. "\n",
  306. "snack_list = ['豆花', '政大烤場', '丐幫滷味', '鹹水雞']\n",
  307. "4\n",
  308. "\n",
  309. "請遵守以下規則:\n",
  310. "1.依照早餐-午餐-晚餐的順序決定\n",
  311. "2.餐點必須用亂數決定\n",
  312. "3.除了定義以上的list,不可以在其他地方出現字串\n",
  313. "(也就是說不可以決定午餐吃'小公寓'後,另外定義dinner = ['波波恰恰', '湯饌', '享窩咖啡',...])\n",
  314. "4.一天裡面只可以有一餐是屬於high_price\n",
  315. "5.午餐跟晚餐我不想吃同一家\n",
  316. "6.如果當天三餐都沒有屬於high_price的話,就要吃宵夜\n",
  317. " \n",
  318. "範例輸出\n",
  319. "\n",
  320. "Case 1:\n",
  321. "早餐:古早味\n",
  322. "午餐:提洛斯\n",
  323. "晚餐:大正亭\n",
  324. "宵夜:鹹水雞\n",
  325. "\n",
  326. "Case 2:\n",
  327. "早餐:傳香飯糰\n",
  328. "午餐:小公寓\n",
  329. "晚餐:鬼匠"
  330. ]
  331. },
  332. {
  333. "cell_type": "code",
  334. "execution_count": 8,
  335. "metadata": {
  336. "collapsed": true
  337. },
  338. "outputs": [],
  339. "source": [
  340. "breakfast_list = ['古早味', '德合香', '布朗奇早餐', '星巴克', '小貓咪', '傳香飯糰', '米塔', '麥當勞', '摩斯', '7-11', '全家']\n",
  341. "lunch_and_dinner_list = ['小公寓', '波波恰恰', '湯饌', '享窩咖啡', '湯包', '殺人魔王', '呷麵騎士', '提洛斯', '蝴蝶漾', '東京小城', '金鰭', '樂山', 'My麵屋', '李氏餐酒館', '里克', '水煎包', '憩賢樓', '高句麗', '魯智深', '敏忠', '大正亭', '阿里郎', '鬼匠', 'Juicy Bun', '滇味廚房']\n",
  342. "high_price_list = ['星巴克', '摩斯', '小公寓', '享窩咖啡', '金鰭', '李氏餐酒館', '里克', 'Juicy Bun', '滇味廚房']\n",
  343. "snack_list = ['豆花', '政大烤場', '丐幫滷味', '鹹水雞']"
  344. ]
  345. },
  346. {
  347. "cell_type": "code",
  348. "execution_count": 9,
  349. "metadata": {},
  350. "outputs": [
  351. {
  352. "name": "stdout",
  353. "output_type": "stream",
  354. "text": [
  355. "早餐: 摩斯\n",
  356. "午餐: 提洛斯\n",
  357. "晚餐: 敏忠\n",
  358. "早餐吃了高級貨,不吃消夜\n"
  359. ]
  360. }
  361. ],
  362. "source": [
  363. "高級 = 0\n",
  364. "x = np.random.randint(275)\n",
  365. "早餐 = np.array(breakfast_list[(x % 11)])\n",
  366. "print('早餐:',早餐)\n",
  367. "if np.any(早餐 == high_price_list):\n",
  368. " 高級 = 1\n",
  369. "x = np.random.randint(275)\n",
  370. "午餐 = np.array(lunch_and_dinner_list[(x % 25)])\n",
  371. "if (高級 == 1):\n",
  372. " while np.any(午餐 == high_price_list):\n",
  373. " 午餐 = np.array(lunch_and_dinner_list[(x % 25)])\n",
  374. "if np.any(午餐 == high_price_list):\n",
  375. " 高級 = 2\n",
  376. "print('午餐:',午餐)\n",
  377. "x = np.random.randint(275)\n",
  378. "晚餐 = np.array(lunch_and_dinner_list[(x % 25)])\n",
  379. "if (高級 == 1 or 2):\n",
  380. " while np.any(晚餐 == high_price_list) or (晚餐 == 午餐):\n",
  381. " x = np.random.randint(275)\n",
  382. " 晚餐 = np.array(lunch_and_dinner_list[(x % 25)])\n",
  383. "else:\n",
  384. " while (晚餐 == 午餐):\n",
  385. " x = np.random.randint(275)\n",
  386. " 晚餐= np.array(lunch_and_dinner_list[(x % 25)])\n",
  387. "if np.any(晚餐 == high_price_list):\n",
  388. " 高級 = 3\n",
  389. "print('晚餐:',晚餐)\n",
  390. "if 高級 == 1:\n",
  391. " print('早餐吃了高級貨,不吃消夜')\n",
  392. "elif 高級 == 2:\n",
  393. " print('午餐吃了高級貨,不吃消夜')\n",
  394. "elif 高級 == 3:\n",
  395. " print('晚餐吃了高級貨,不吃消夜')\n",
  396. "else:\n",
  397. " x = np.random.randint(275)\n",
  398. " 消夜= np.array(snack_list[(x % 4)])\n",
  399. " print('消夜:',消夜)"
  400. ]
  401. },
  402. {
  403. "cell_type": "code",
  404. "execution_count": null,
  405. "metadata": {
  406. "collapsed": true
  407. },
  408. "outputs": [],
  409. "source": []
  410. }
  411. ],
  412. "metadata": {
  413. "kernelspec": {
  414. "display_name": "Python 3",
  415. "language": "python",
  416. "name": "python3"
  417. },
  418. "language_info": {
  419. "codemirror_mode": {
  420. "name": "ipython",
  421. "version": 3
  422. },
  423. "file_extension": ".py",
  424. "mimetype": "text/x-python",
  425. "name": "python",
  426. "nbconvert_exporter": "python",
  427. "pygments_lexer": "ipython3",
  428. "version": "3.6.2"
  429. }
  430. },
  431. "nbformat": 4,
  432. "nbformat_minor": 2
  433. }
Add Comment
Please, Sign In to add comment