2025年7月11日 星期五

Pandoc

 Pandoc 是一個強大的 Haskell 程式庫與命令列工具,用於在多種標記語言格式之間進行文件轉換,例如 Markdown、HTML、LaTeX 和 Word docx 等。它的設計是模組化的,透過「讀取器」(readers)將文本解析為抽象語法樹(AST),再由「寫入器」(writers)將 AST 轉換為目標格式

基本轉換
pandoc [options] [input-file]...
若未指定輸入檔案,Pandoc 將從標準輸入 (stdin) 讀取;預設輸出到標準輸出 (stdout)
範例pandoc -o output.html input.txt 會將 input.txt 轉換為 output.html

2025年7月10日 星期四

robocopy

robocopy 是 Windows 內建的高效能檔案拷貝工具,全名為 Robust File Copy,適用於大量資料搬移與同步用途,特別在處理:

  1. 大量小檔案

  2. 巨大資料夾

  3. 網路傳輸

  4. 自動化備份

      robocopy %SRC% %DEST% /E /Z /W:1 /R:3 /LOG:log.txt

參數 中文說明 用途
%SRC% 資料來源路徑變數 例如:D:\MyData
%DEST% 資料目的地路徑變數 例如:\\192.168.0.2\SharedFolder
/MIR Mirror(鏡像)同步 將目的地變成跟來源一模一樣❗會刪除目的地中多餘檔案
/Z 可中斷續傳 傳輸中斷(如網路掉線)可恢復接續拷貝
/W:1 每次失敗後等待 1 秒 遇錯重試前的等待秒數
/R:3 最多重試 3 次 檔案讀寫錯誤時最多嘗試幾次
/LOG:log.txt 將日誌寫入 log.txt 檔案 可追蹤哪個檔案有成功/失敗

2025年6月25日 星期三

python 縮格練習

 n =int(input())

s = list(range(n))

f = [int(i) for i in input().split()]


print(s)

print(f)

print()


print('正確')

v = []

for i in s:

  if i not in v:

    cur =i

    g = []

    while cur not in g:

      v.append(cur)

      g.append(cur)

      cur = f[cur]

  

    print(g)


print('錯誤1')

v = []

for i in s:

  if i not in v:

    cur =i

    g = []

    while cur not in g:

      v.append(cur)

      g.append(cur)

      cur = f[cur]

  

      print(g)


print('錯誤2')

v = []

for i in s:

  if i not in v:

    cur =i

    g = []

    while cur not in g:

      v.append(cur)

      g.append(cur)

      cur = f[cur]

  

  print(g)


print('錯誤3')

v = []

for i in s:

  if i not in v:

    cur =i

    g = []

    while cur not in g:

      v.append(cur)

      g.append(cur)

      cur = f[cur]


print(g)


10

4 7 2 9 6 0 8 1 5 3


STDIN

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

[4, 7, 2, 9, 6, 0, 8, 1, 5, 3]


Output:

正確

[0, 4, 6, 8, 5]

[1, 7]

[2]

[3, 9]

錯誤1

[0]

[0, 4]

[0, 4, 6]

[0, 4, 6, 8]

[0, 4, 6, 8, 5]

[1]

[1, 7]

[2]

[3]

[3, 9]

錯誤2

[0, 4, 6, 8, 5]

[1, 7]

[2]

[3, 9]

[3, 9]

[3, 9]

[3, 9]

[3, 9]

[3, 9]

[3, 9]

錯誤3

[3, 9]


2025年6月24日 星期二

小群體-拆解逐步完成版

 ss = [0,1,2,3,4,5,6,7,8,9]

f = [4, 7, 2, 9, 6, 0, 8, 1, 5, 3]


# 1:找到第一群'

# g = []

# cur = 0

# while cur not in g:

#   g.append(cur)

#   cur = f[cur]

# print(g)


# 2:'找到每一群'

# for s in ss:

#   g = []

#   cur = s

#   while cur not in g:

#     g.append(cur)

#     cur = f[cur]

#   print(g)


# 3: '找到每一群,去重覆群'

# v = []

# for s in ss:

#   g = []

#   cur = s

#   if s not in v:

#     while cur not in g:

#       g.append(cur)

#       v.append(cur)

#       cur = f[cur]

#     print(g)

    

# 4: '找到每一群,去重覆群,算出共幾群'

v = []

gs = []

for s in ss:

  g = []

  cur = s

  if s not in v:

    while cur not in g:

      g.append(cur)

      v.append(cur)

      cur = f[cur]

    print(g)

    gs.append(g)

print('共',len(gs),'群')


Output:


[0, 4, 6, 8, 5]

[1, 7]

[2]

[3, 9]

共 4 群

2025年6月20日 星期五

高中一年級新生準備 APCS準備計畫

 1. 了解 APCS 的重要性與目標設定

  • 升學優勢:APCS 成績已被多所大學(包含臺灣大學、清華大學、陽明交通大學、成功大學等頂尖大學的資工系)納入入學審查與甄選加分依據。參與 APCS 檢測並取得成績,能為學生在大學個人申請中,透過 APCS 組、資安組或特殊選才,大大增加進入理想資訊相關科系(如資工系、資管系)的競爭力與選擇。
  • 目標設定:若以大學升學為導向,建議至少考取 APCS 實作三級,這在特殊選才中已有機會申請上國立後段資工系。若能達到實作四級,更有機會透過特殊選才錄取中字輩資工系。考量到大學資訊系課程的嚴謹度(例如,有教授可能當掉70%的學生),提前準備 APCS 有助於銜接大學課程。

2. 基礎程式能力建立(高中一年級上學期)

  • 程式語言選擇Python 是最推薦的入門語言。Python 語法簡潔、易讀性高,且是全球最受歡迎的程式語言,特別在人工智慧和資料科學領域廣泛應用。從 2025 年起,APCS 的「程式識讀」和「程式實作」都新增了 Python 語言選項,這意味著考生若熟悉 Python,便能應付所有模組的測驗。
  • 學習內容
    • Python 基礎語法與觀念:學習變數、資料型態、運算子、輸入/輸出、條件判斷(選擇)和迴圈(重複)等程式流程控制。
    • 常用容器:掌握列表(list)等資料結構的基本使用。
    • 函式:了解函式的定義與呼叫,初步建立模組化概念。

3. 進階程式能力與解題思維(高中一年級下學期至二年級)

  • 強化邏輯與問題解決能力:APCS 檢測旨在訓練學生的邏輯思維與問題解決能力。課程應培養學生「從拆解、分析,到解決複雜問題」的能力。
  • 擴展程式語言能力:雖然主要學習 Python,但觀念題可能涉及 C/C++。因此,建議花時間學習「讀懂」C 語言,這有助於應對觀念題型。有些培訓課程會提供程式語法轉換的教學。
  • 學習進階資料結構與演算法:這是 APCS 的核心考點。
    • 基礎資料結構:深入學習佇列(queue)、堆疊(stack)、陣列(array)、字元(character)、字串(string)等。
    • 基礎演算法:學習排序(sorting)、搜尋(searching,如二分搜尋 binary search、深度優先搜尋 DFS)等。
    • 進階概念:函式、遞迴、樹狀圖(tree,如二元樹)、圖形(graph,如網格)、枚舉(enumeration)、資料遍歷(traversal)等。
    • 高階演算法:對於目標高級的學生,還需學習動態規劃(dynamic programming)、分治法(divide and conquer)、貪心法則(greedy method)等。

4. 實戰演練與應試技巧(高中二年級至三年級)

  • 考古題練習:充分利用 APCS 歷屆考古題庫進行實作練習,例如 Yui Huang 筆記中提供了從 2016 年到 2025 年的考古題。
  • 模擬測驗:透過實作模擬檢定當時的狀況,加強學生記憶與應試能力。
  • 題型分析與解題技巧:針對「程式識讀」的程式運行追蹤、填空、測試除錯、效能分析、計算邏輯解析,以及「程式實作」的撰寫完整程式或副程式等題型進行專項訓練,從技巧觀念、例題實作到挑戰題,由簡入難提升解題策略。
  • 理解新制實作分級與報名策略
    • 從 2025 年起,「程式實作」改採等級制檢定,分為初級、中級、中高級、高級四個等級。
    • 學生需根據自身目標級分,選擇對應的檢測等級報名。例如,若目標為三級分,可報考中高級(100-149 分)或中級(150-300 分)。若報考的測驗等級錯誤,即使獲得滿分也無法得到理想級分,因此務必注意選測等級的重要性。

5. APCS 考試時程規劃

  • 考試頻率增加:自 2025 年起,APCS 檢定次數增加至每年 6 次,分別於 1 月、3 月、6 月、7 月、10 月、11 月舉辦,這提供了學生更大的考試彈性,可以根據學習進度安排應試時間。
  • 科目報考時間
    • 程式識讀:每次檢測月份皆可報考,並有 C/C++ 或 Python 程式語言的檢測題目供選擇。
    • 程式實作:不同等級舉辦月份不同,其中初級與中級舉辦月份較多(5 次),中高級為 3 次,高級為 2 次。

6. 綜合能力與視野提升

  • 拓展科技視野:除了程式技術,應積極了解人工智慧、區塊鏈、5G、VR、AR、駭客思維、創新創業等最新的科技趨勢與思維模式。這不僅能開拓視野,也能在大學面試時與教授進行深入交流。
  • 培養軟實力:除了學業,也建議高中生多探索不同科系領域,並參與球隊、興趣性社團等,培養運動習慣、社交能力和興趣。這些多元發展對於長遠人生和解決問題的能力都有助益。

2025 新制 APCS 重點整理

APCS(大學程式設計先修檢測)是由教育部指導、臺師大資工系執行的全國性程式設計檢定,主要評量高中職學生在邏輯推理、演算法思維與程式撰寫能力的表現,並成為各大學資訊相關科系參採的重要升學依據。目前已有超過 30 所大學、80 多個科系納入 APCS 成績,包括台大、清大、交大與成大等頂尖學校。

APCS 分為兩部分:程式識讀(筆試)與 程式實作(電腦上機)。2025 年起的新制 APCS有三大關鍵改變:

  1. 考試次數加倍:由原本每年 3 次(1月、6月、10月)調整為 每年 6 次(新增 3月、7月、11月),提供學生更高的彈性安排,並降低單次壓力。

  2. 語言選擇與實作分級

    • 程式識讀新增 Python 語言,讓初學者有更親切的選擇。

    • 程式實作改採 等級制檢定,分為初級、中級、中高級與高級。考生須依照目標級分選擇相應等級,若報考較低等級,即使拿滿分也無法獲得高級分。

  3. 成績更具辨識力:程式實作除了 1~5 級分外,還會列出原始分數與報考等級,使大學更能掌握學生的實際能力,有利於備審資料與面試表現。

準備建議

  1. 建議考生可專注學習 Python,並搭配資料結構(陣列、堆疊、佇列、樹、圖)與演算法(排序、搜尋、遞迴、動態規劃等)系統訓練。
  2. 配合歷屆題型、模擬練習及錯題整理,有助於提升解題技巧與應試信心。


APCS 7級必勝秘笈:學習、練習、突破|觀念題C+實作題Python


https://www.books.com.tw/products/0011004302?sloc=main

APCS 7級必勝秘笈:學習、練習、突破|觀念題C+實作題Python