Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {
- "cells": [
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- " # 第一題:\n",
- "題目:給定一個矩陣m,裡面的值都大於0。\n",
- "請將矩陣m裡大於等於1的數字都變成1,小於1的變成0。\n",
- " \n",
- "m = np.array([[0,1,10],[2,6,7]])\n",
- " \n",
- "提示:使用巢狀迴圈(nested loop)加判斷式"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 1,
- "metadata": {
- "collapsed": true
- },
- "outputs": [],
- "source": [
- "%matplotlib inline\n",
- "import numpy as np\n",
- "import matplotlib.pyplot as plt"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[[0 1 1]\n",
- " [1 1 1]]\n"
- ]
- }
- ],
- "source": [
- "m = np.array([[0,1,10],[2,6,7]])\n",
- "for a in range(len(m)):\n",
- " for b in range(len(m[0])):\n",
- " if m[a][b] < 1:\n",
- " m[a][b] = 0\n",
- " else :\n",
- " m[a][b] = 1\n",
- "print(m)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- " # 第二題:\n",
- "有A,B,C三個班級,每班皆有10個學生,期中考結束後,老師希望計算各班級每位學生的加權平均成績。\n",
- " \n",
- "請隨機產生3個班級的成績單,每班10人,共五科,權重為weights=[0.25,0.25,0.25,0.15,0.10]。\n",
- "請算出班級加權平均成績,並以一個array輸出。\n",
- " \n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 3,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[[[ 8 13 5 13 1]\n",
- " [ 3 49 97 35 52]\n",
- " [16 61 88 73 78]\n",
- " [80 66 66 10 43]\n",
- " [87 22 53 91 14]\n",
- " [57 49 74 61 38]\n",
- " [82 17 45 26 94]\n",
- " [ 7 53 81 80 17]\n",
- " [78 24 54 74 79]\n",
- " [72 23 29 24 58]]\n",
- "\n",
- " [[38 51 92 62 54]\n",
- " [37 90 37 10 14]\n",
- " [24 61 57 86 28]\n",
- " [38 24 57 20 95]\n",
- " [38 10 61 62 91]\n",
- " [19 57 28 38 73]\n",
- " [11 32 6 95 72]\n",
- " [90 53 71 19 34]\n",
- " [68 31 70 81 41]\n",
- " [ 9 96 39 81 52]]\n",
- "\n",
- " [[ 8 0 79 85 93]\n",
- " [13 30 56 70 17]\n",
- " [73 56 47 89 5]\n",
- " [50 72 9 34 62]\n",
- " [ 0 49 94 43 97]\n",
- " [ 5 81 73 14 24]\n",
- " [28 37 93 42 32]\n",
- " [85 98 57 77 66]\n",
- " [68 22 64 90 59]\n",
- " [95 18 5 91 86]]]\n",
- "[[ 8.55 47.7 60. 58.8 55.55 57.95 49.3 48.95 58. 40.4 ]\n",
- " [ 59.95 43.9 51.2 42.25 45.65 39. 33.7 59.75 58.5 53.35]\n",
- " [ 43.8 36.95 57.85 44.05 51.9 44.25 49. 78.15 57.9 51.75]]\n",
- "[[ 48.52 ]\n",
- " [ 48.725]\n",
- " [ 51.56 ]]\n"
- ]
- }
- ],
- "source": [
- "x = np.ones((3,10,5))\n",
- "x = np.random.randint(0,100,(3,10,5))\n",
- "weights = [0.25,0.25,0.25,0.15,0.10]\n",
- "print(x)\n",
- "y = np.dot(x, weights)\n",
- "print(y)\n",
- "z = np.ones((10,1))\n",
- "z = np.dot(y, z)/10\n",
- "print(z)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- " # 挑戰題一:\n",
- "請定義一個全班高微成績的函式,輸入是一個(3, 30, 3)的array, \n",
- "表示3個班級中30位學生的成績(小考,期中考,期末考) 。\n",
- "\n",
- "目標輸出則是一個(3, 30, 1)的array,表示所有學生的期末成績,\n",
- "期末成績計算方式如下:\n",
- "\n",
- "1. 小考20%,期中考35%,期末考45% \n",
- "2. 期中考40%,期末考60%。 \n",
- "擇優作為期末成績\n",
- " \n",
- "Hint\n",
- "* 可以用雙重for迴圈 分別跑過班級跟人\n",
- "* 可以先設一個array裝算出來的成績\n",
- "* 記得要用return \n",
- "* 請做個測試,檢驗你的結果,方便同學 # 挑戰題一:\n",
- "請定義一個全班高微成績的函式,輸入是一個(3, 30, 3)的array, \n",
- "表示3個班級中30位學生的成績(小考,期中考,期末考) 。\n",
- "\n",
- "目標輸出則是一個(3, 30, 1)的array,表示所有學生的期末成績,\n",
- "期末成績計算方式如下:\n",
- "\n",
- "1. 小考20%,期中考35%,期末考45% \n",
- "2. 期中考40%,期末考60%。 \n",
- "擇優作為期末成績\n",
- " \n",
- "Hint\n",
- "* 可以用雙重for迴圈 分別跑過班級跟人\n",
- "* 可以先設一個array裝算出來的成績\n",
- "* 記得要用return \n",
- "* 請做個測試,檢驗你的結果,方便同學評分。評分。\n",
- " \n",
- " \n"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[[[ 20.15]\n",
- " [ 63.95]\n",
- " [ 52.45]\n",
- " [ 23. ]\n",
- " [ 33.95]\n",
- " [ 77.75]\n",
- " [ 44. ]\n",
- " [ 55.65]\n",
- " [ 17.2 ]\n",
- " [ 76.6 ]\n",
- " [ 75.2 ]\n",
- " [ 65.8 ]\n",
- " [ 54.8 ]\n",
- " [ 65.8 ]\n",
- " [ 84.8 ]\n",
- " [ 74.15]\n",
- " [ 88.4 ]\n",
- " [ 70.15]\n",
- " [ 65. ]\n",
- " [ 86.6 ]\n",
- " [ 40.35]\n",
- " [ 15.9 ]\n",
- " [ 70.2 ]\n",
- " [ 59.6 ]\n",
- " [ 48.3 ]\n",
- " [ 50.15]\n",
- " [ 80.2 ]\n",
- " [ 50.35]\n",
- " [ 38. ]\n",
- " [ 61.6 ]]\n",
- "\n",
- " [[ 47.3 ]\n",
- " [ 28.6 ]\n",
- " [ 76.2 ]\n",
- " [ 47.6 ]\n",
- " [ 60.8 ]\n",
- " [ 53.6 ]\n",
- " [ 61.6 ]\n",
- " [ 70.4 ]\n",
- " [ 48.95]\n",
- " [ 49.85]\n",
- " [ 78. ]\n",
- " [ 71.2 ]\n",
- " [ 61.5 ]\n",
- " [ 58. ]\n",
- " [ 42.9 ]\n",
- " [ 62.8 ]\n",
- " [ 62.25]\n",
- " [ 56.55]\n",
- " [ 31.95]\n",
- " [ 42.4 ]\n",
- " [ 73.2 ]\n",
- " [ 60.4 ]\n",
- " [ 81.4 ]\n",
- " [ 37.05]\n",
- " [ 65.2 ]\n",
- " [ 67.5 ]\n",
- " [ 66.8 ]\n",
- " [ 17.4 ]\n",
- " [ 29. ]\n",
- " [ 45.65]]\n",
- "\n",
- " [[ 49.05]\n",
- " [ 60.05]\n",
- " [ 59.3 ]\n",
- " [ 32.85]\n",
- " [ 72.1 ]\n",
- " [ 58.4 ]\n",
- " [ 74.4 ]\n",
- " [ 75.6 ]\n",
- " [ 57.8 ]\n",
- " [ 42.45]\n",
- " [ 41.85]\n",
- " [ 44.2 ]\n",
- " [ 33.15]\n",
- " [ 83.6 ]\n",
- " [ 81.9 ]\n",
- " [ 85.6 ]\n",
- " [ 49.9 ]\n",
- " [ 7.85]\n",
- " [ 55.55]\n",
- " [ 54.65]\n",
- " [ 53.85]\n",
- " [ 54.6 ]\n",
- " [ 57.6 ]\n",
- " [ 77. ]\n",
- " [ 45.2 ]\n",
- " [ 62.85]\n",
- " [ 68.2 ]\n",
- " [ 65.9 ]\n",
- " [ 60.9 ]\n",
- " [ 12.8 ]]]\n"
- ]
- }
- ],
- "source": [
- "%matplotlib inline\n",
- "import numpy as np\n",
- "import matplotlib.pyplot as plt\n",
- "x = np.random.randint(0,100,(3,30,3))\n",
- "total = np.ones((3,30,1))\n",
- "for a in range(len(x)):\n",
- " for b in range(len(x[0])):\n",
- " m = np.dot(x[a][b],[0.2,0.35,0.45])\n",
- " n = np.dot(x[a][b],[0,0.4,0.6])\n",
- " if m > n :\n",
- " total[a][b][0] = m\n",
- " else :\n",
- " total[a][b][0] = n\n",
- "print(total)"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- " # 世紀魔鬼挑戰題(做完可以直接得到一百分):\n",
- "美食沙漠的餐點推薦系統\n",
- "Susan是個數學高手,每天專心研究高深數學理論,因此沒有時間想每一餐要吃什麽,\n",
- "請依照他的需求幫他做出各餐的推薦餐點。\n",
- " \n",
- "給定以下list:\n",
- "breakfast_list = ['古早味', '德合香', '布朗奇早餐', '星巴克', '小貓咪', '傳香飯糰', '米塔', '麥當勞', '摩斯', '7-11', '全家']\n",
- "11\n",
- "\n",
- "lunch_and_dinner_list = ['小公寓', '波波恰恰', '湯饌', '享窩咖啡', '湯包', '殺人魔王', '呷麵騎士', '提洛斯', '蝴蝶漾', '東京小城', '金鰭', '樂山', 'My麵屋', '李氏餐酒館', '里克', '水煎包', '憩賢樓', '高句麗', '魯智深', '敏忠', '大正亭', '阿里郎', '鬼匠', 'Juicy Bun', '滇味廚房']\n",
- "25\n",
- "\n",
- "high_price_list = ['星巴克', '摩斯', '小公寓', '享窩咖啡', '金鰭', '李氏餐酒館', '里克', 'Juicy Bun', '滇味廚房']\n",
- "\n",
- "snack_list = ['豆花', '政大烤場', '丐幫滷味', '鹹水雞']\n",
- "4\n",
- "\n",
- "請遵守以下規則:\n",
- "1.依照早餐-午餐-晚餐的順序決定\n",
- "2.餐點必須用亂數決定\n",
- "3.除了定義以上的list,不可以在其他地方出現字串\n",
- "(也就是說不可以決定午餐吃'小公寓'後,另外定義dinner = ['波波恰恰', '湯饌', '享窩咖啡',...])\n",
- "4.一天裡面只可以有一餐是屬於high_price\n",
- "5.午餐跟晚餐我不想吃同一家\n",
- "6.如果當天三餐都沒有屬於high_price的話,就要吃宵夜\n",
- " \n",
- "範例輸出\n",
- "\n",
- "Case 1:\n",
- "早餐:古早味\n",
- "午餐:提洛斯\n",
- "晚餐:大正亭\n",
- "宵夜:鹹水雞\n",
- "\n",
- "Case 2:\n",
- "早餐:傳香飯糰\n",
- "午餐:小公寓\n",
- "晚餐:鬼匠"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 8,
- "metadata": {
- "collapsed": true
- },
- "outputs": [],
- "source": [
- "breakfast_list = ['古早味', '德合香', '布朗奇早餐', '星巴克', '小貓咪', '傳香飯糰', '米塔', '麥當勞', '摩斯', '7-11', '全家']\n",
- "lunch_and_dinner_list = ['小公寓', '波波恰恰', '湯饌', '享窩咖啡', '湯包', '殺人魔王', '呷麵騎士', '提洛斯', '蝴蝶漾', '東京小城', '金鰭', '樂山', 'My麵屋', '李氏餐酒館', '里克', '水煎包', '憩賢樓', '高句麗', '魯智深', '敏忠', '大正亭', '阿里郎', '鬼匠', 'Juicy Bun', '滇味廚房']\n",
- "high_price_list = ['星巴克', '摩斯', '小公寓', '享窩咖啡', '金鰭', '李氏餐酒館', '里克', 'Juicy Bun', '滇味廚房']\n",
- "snack_list = ['豆花', '政大烤場', '丐幫滷味', '鹹水雞']"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 9,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "早餐: 摩斯\n",
- "午餐: 提洛斯\n",
- "晚餐: 敏忠\n",
- "早餐吃了高級貨,不吃消夜\n"
- ]
- }
- ],
- "source": [
- "高級 = 0\n",
- "x = np.random.randint(275)\n",
- "早餐 = np.array(breakfast_list[(x % 11)])\n",
- "print('早餐:',早餐)\n",
- "if np.any(早餐 == high_price_list):\n",
- " 高級 = 1\n",
- "x = np.random.randint(275)\n",
- "午餐 = np.array(lunch_and_dinner_list[(x % 25)])\n",
- "if (高級 == 1):\n",
- " while np.any(午餐 == high_price_list):\n",
- " 午餐 = np.array(lunch_and_dinner_list[(x % 25)])\n",
- "if np.any(午餐 == high_price_list):\n",
- " 高級 = 2\n",
- "print('午餐:',午餐)\n",
- "x = np.random.randint(275)\n",
- "晚餐 = np.array(lunch_and_dinner_list[(x % 25)])\n",
- "if (高級 == 1 or 2):\n",
- " while np.any(晚餐 == high_price_list) or (晚餐 == 午餐):\n",
- " x = np.random.randint(275)\n",
- " 晚餐 = np.array(lunch_and_dinner_list[(x % 25)])\n",
- "else:\n",
- " while (晚餐 == 午餐):\n",
- " x = np.random.randint(275)\n",
- " 晚餐= np.array(lunch_and_dinner_list[(x % 25)])\n",
- "if np.any(晚餐 == high_price_list):\n",
- " 高級 = 3\n",
- "print('晚餐:',晚餐)\n",
- "if 高級 == 1:\n",
- " print('早餐吃了高級貨,不吃消夜')\n",
- "elif 高級 == 2:\n",
- " print('午餐吃了高級貨,不吃消夜')\n",
- "elif 高級 == 3:\n",
- " print('晚餐吃了高級貨,不吃消夜')\n",
- "else:\n",
- " x = np.random.randint(275)\n",
- " 消夜= np.array(snack_list[(x % 4)])\n",
- " print('消夜:',消夜)"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "collapsed": true
- },
- "outputs": [],
- "source": []
- }
- ],
- "metadata": {
- "kernelspec": {
- "display_name": "Python 3",
- "language": "python",
- "name": "python3"
- },
- "language_info": {
- "codemirror_mode": {
- "name": "ipython",
- "version": 3
- },
- "file_extension": ".py",
- "mimetype": "text/x-python",
- "name": "python",
- "nbconvert_exporter": "python",
- "pygments_lexer": "ipython3",
- "version": "3.6.2"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 2
- }
Add Comment
Please, Sign In to add comment