有四種不同的書,剛好書皮顏色也不一樣,分別是紅黃藍綠,每種書各有四本,有四個地方可以堆放,現在規定每個地方可以堆放四本不同顏色的書,請問
1. 每堆的堆放層別不可重複時,有幾種放法?例如第一堆由上而下為紅黃藍綠,第二堆不可以紅藍綠黃,因為最上層同顏色。
2. 如果不限制堆放重複時,有幾種放法?
2020年5月26日 星期二
訓練數學感 252 ─ 書籍排列
2020年5月22日 星期五
ROSA 2020 系統開發 1 ─ LED control
今年因為 COVID-19 的關係,把一些活動行程打亂,最近有空再重整 ROSA (Robot Operation System for Arduino) 程式碼,程式庫改以 C++ 物件導向設計,因此 ROSA 2020 跟 ROSA 2019 還是有許多差異,不過基本概念仍然相通。以下程式使用 Arduino Uno 控制 LED 為例,將程式寫得更結構化,以此 ROSA 再出發。
主程式為 ROSA_LED.ino,下面藍色部分,它讓 pin 13 的 LED 亮 250 ms,滅 250 ms 循環閃爍,因為這程式不需要處理日期時間,所以取消綠色部分的程式,可讓程式更小。關於 ROSA 系統參數設定,基本上標示作品名稱及日期版本,和重要 #define,ROSA 設計成函式庫型式,就是讓一般使用者專注寫自己的程式碼,而專業開發者提供精簡好用的功能, 這些 #define 和 #include 是介於兩者之間的橋樑,讓那些函式庫程式碼引入,個人覺得這些放在主程式比較醒目,提醒使用者他的設定。
// This is a demo program applied Robot Operation System for Arduino (ROSA)
// http://4rdp.blogspot.tw/search/label/ROSA%20(Arduino)
//軟件許可協議
//
//研發養成所 Bridan Wang 提供此軟體供學校教育或個人單獨使用
//對外分享展示本軟體時,請說明來源來自研發養成所
//你可以架構在本軟體基礎上,設計新功能或修改
//本軟體屬於 Bridan 和或其它原始碼供應商,並受適用的法律版權保護
//此軟體按“原樣”提供,可能含有錯誤,不作任何明示,暗示或法律的保證
//本軟體僅限 Arduino 部分微控制器產品,適用於特定用途
// Bridan 在任何情況、環境以及特殊使用不負任何原因損害賠償責任
//
//這是 ROSA 韌體版本的一部分。
//
//建議使用 Arduino-1.8.8 以後版本編譯,因為有發現舊版本有錯誤情形
/***********************************************************
// System Condition DEFINE
************************************************************/
#define PRODUCT "ROSA,LED "
#define VERSION "v2020.5.11"
//#define TIME_2ms // ROSA_TIME_2ms()
//#define TIME_10ms // ROSA_TIME_10ms()
//#define TIME_50ms // ROSA_TIME_50ms()
//#define TIME_100ms // ROSA_TIME_100ms()
#define TIME_250ms // ROSA_TIME_250ms()
//#define TIME_500ms // ROSA_TIME_500ms()
//#define TIME_1sec // ROSA_TIME_1sec()
//#define TIME_SYSTEM // ROSA_TIME_SETUP()
// Include
************************************************************/
#include ".\ROSA\ROSA_BASE.cpp"
ROSA_PIN led;
/***********************************************************
// Main Program
************************************************************/
void setup() {
//ROSA_TIME_SETUP(20, 5, 9, 0, 0, 0) ; // YEAR, MONTH, DAY, HOUR, MINUTE, SECOND
led.SETUP(13, OUTPUT); // pin 13
}
void loop()
{
ROSA_TIME_RUNNING(); // 系統時間處理
}
/***********************************************************
// SYSTEM TIME
************************************************************/
void ROSA_TIME_250ms()
{
led.OUT(CHANGE); // 閃爍
}
2020年5月18日 星期一
2020年5月14日 星期四
一次搞懂密碼學中的三兄弟 — Encode、Encrypt 跟 Hash
作者 Larry 盧承億寫這篇文章很棒,很淺顯地把編碼(Encode)、加密(Encrypt)跟雜湊(Hash)三者的關係與差異點出來,在此留下連結,有興趣的朋友細細品味
https://medium.com/starbugs/what-are-encoding-encrypt-and-hashing-4b03d40e7b0c
2020年5月10日 星期日
訓練數學感 250 ─ 抽到哪一箱
有兩箱球各有十顆,一箱為七紅三白,另一箱為三紅七白,選其中一箱抽球,現在抽球十二次,出現八紅四白,每次抽出放回去,請問抽到七紅三白那一箱的機率有多少?
2020年5月6日 星期三
QCAD
兩年前曾推薦一款 DraftSight ─ 好用的 CAD 軟體,因為 2020 年起開始收費,本想付費訂購,但是因為它是年費制 (年費 NTD 3464),沒有提供一次性買斷的交易方式,讓我放棄使用它,因此上網尋找替代品,最後選定 QCAD (Professional, USD 38 = NTD 1140),剛開始使用蠻痛苦,因為整個操作習慣不一樣,學習一段時間才慢慢適應,不過它有許多不錯功能,更勝 DraftSight,以下為 QCAD 簡介。
1. 滾輪放大縮小底圖尺寸;Ctrl + 滑鼠左鍵 可以拖動圖上下左右;Shift + 滑鼠左鍵 可以加選物件;Alt + 滑鼠左鍵 可以選取重疊物件。
2. 自動標點,製圖不同於繪圖,需要精確尺寸,有標點比較容易計數位置,也比較容易製圖定位,而且 QCAD 它還會自動隨尺寸大小調整,標點也跟著自動調整,非常方便。
3. 參數細調,製圖過程需要修改座標、長度等參數,可以從 Property Editor 的欄位去修改數值,線粗 Lineweight;顏色初始 By Layer。
4. 線頭起點為紅色,結尾為藍色,圓形角度方向為逆時鐘,可以利用對調 (Modify > Reverse) 來改變。
5. 填色,Draw > Hatch > HS > 選輪廓 > 滑鼠右鍵點填圖區。
6. Move / Copy,點選物件 > Modify > Move / Copy > 滑鼠左鍵點選參考點 > 滑鼠左鍵點選放置點。
9. 可輸入中文字體。
10. 物件上下層,Modify > Draw Order > Bring to front | Send to back。(處理線段上下重疊)
11. 繪圖次序,當想雷射切割最佳化路徑,可以 Modify > Draw Order > Reorder。
12. 群組,Block > Create Block from Selection;分解,Block > Explode。編輯從 Block List 處理。
14. 切齊 (刪除多餘 或是 補充不足),Modify > Trim > 點選界線 > 點選保留部分;
Modify > Trim Both > 點選界線 > 點選保留部份 > 點選另一界線 > 點選保留部份。
15. 分割,Modify > Divide > 點選物件 > 點選第一分離點 > 點選第二分離點;
圓弧第一分離點為頭,逆時針方向,第二點為尾。
2020年5月2日 星期六
訓練數學感 249 ─ Total 13
A + B + C + D + E + F = 13, 0 ≦ A,B,C,D,E,F ≦ 9
任意正整數排列組合,相加等於 13,並且單一整數最大值為 9,如果 9 + 2 + 2 + 0 + 0 + 0 是一種組合,那麼 2 + 2 + 9 + 0 + 0 + 0 是重覆的組合,請問有多少種排列組合不重覆?如果可以重覆有多少種?

