2020年5月26日 星期二

訓練數學感 252 ─ 書籍排列

https://4rdp.blogspot.com/2020/05/252.html

有四種不同的書,剛好書皮顏色也不一樣,分別是紅黃藍綠,每種書各有四本,有四個地方可以堆放,現在規定每個地方可以堆放四本不同顏色的書,請問

1. 每堆的堆放層別不可重複時,有幾種放法?例如第一堆由上而下為紅黃藍綠,第二堆不可以紅藍綠黃,因為最上層同顏色。

2. 如果不限制堆放重複時,有幾種放法?

2020年5月22日 星期五

ROSA 2020 系統開發 1 ─ LED control

https://4rdp.blogspot.com/2020/05/rosa-2020-1-led-control.html

今年因為 COVID-19 的關係,把一些活動行程打亂,最近有空再重整 ROSA (Robot Operation System for Arduino) 程式碼,程式庫改以 C++ 物件導向設計,因此 ROSA 2020 跟 ROSA 2019 還是有許多差異,不過基本概念仍然相通。以下程式使用 Arduino Uno 控制 LED 為例,將程式寫得更結構化,以此 ROSA 再出發。


ROSA 主程式目錄檔案

ROSA 函式庫檔案

主程式為 ROSA_LED.ino,下面藍色部分,它讓 pin 13 的 LED 亮 250 ms,滅 250 ms 循環閃爍,因為這程式不需要處理日期時間,所以取消綠色部分的程式,可讓程式更小。關於 ROSA 系統參數設定,基本上標示作品名稱及日期版本,和重要 #define,ROSA 設計成函式庫型式,就是讓一般使用者專注寫自己的程式碼,而專業開發者提供精簡好用的功能, 這些 #define 和 #include 是介於兩者之間的橋樑,讓那些函式庫程式碼引入,個人覺得這些放在主程式比較醒目,提醒使用者他的設定。

// (C) 2019-2020, Bridan Wang, CC BY-NC-SA 3.0 TW
// 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);     // 閃爍
}

所有 ROSA 程式必須包含 ROSA_BASE.cpp 函式庫,它是 ROSA 的基礎程式,先看一下程式碼,先說明跟時間相關部分,根據主程式 #define 設定,將需要的程式碼含入編譯。

2020年5月18日 星期一

訓練數學感 251 ─ 分割排列

https://4rdp.blogspot.com/2020/05/251.html



































































上圖為 8 x 8 表格,以剪刀沿著格線修剪,只允許邊長為 1, 2, 4, 8 格子的倍數,在不旋轉的情況下,有幾種排列組合?

2020年5月14日 星期四

一次搞懂密碼學中的三兄弟 — Encode、Encrypt 跟 Hash

https://4rdp.blogspot.com/2020/05/encodeencrypt-hash.html


作者 Larry 盧承億寫這篇文章很棒,很淺顯地把編碼(Encode)、加密(Encrypt)跟雜湊(Hash)三者的關係與差異點出來,在此留下連結,有興趣的朋友細細品味
https://medium.com/starbugs/what-are-encoding-encrypt-and-hashing-4b03d40e7b0c


2020年5月10日 星期日

訓練數學感 250 ─ 抽到哪一箱

https://4rdp.blogspot.com/2020/05/250.html

有兩箱球各有十顆,一箱為七紅三白,另一箱為三紅七白,選其中一箱抽球,現在抽球十二次,出現八紅四白,每次抽出放回去,請問抽到七紅三白那一箱的機率有多少?

2020年5月6日 星期三

QCAD

https://4rdp.blogspot.com/2020/05/qcad.html

兩年前曾推薦一款 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 > 滑鼠左鍵點選參考點 > 滑鼠左鍵點選放置點。

7. 物件放大縮小,點選物件 > Modify > Scale > 滑鼠左鍵點選參考點 > 更動大小比例。

8. 載入圖檔,File > Import > 滑鼠左鍵點選放置點。

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 處理。

13. 刪除多於線段 (被刪除的線段在兩邊界線之間),Modify > Break out Segment > 點選欲刪除線段。

14. 切齊 (刪除多餘 或是 補充不足),Modify > Trim > 點選界線 > 點選保留部分;
      Modify > Trim Both > 界線 > 點保留部份 > 點另一界線 > 點保留部份。

15. 分割Modify > Divide > 點物件 > 點第一分離點 > 點第二分離點;
      圓弧第一分離點為頭,逆時針方向,第二點為尾。

16. 存檔,File > Save As ... > 選擇檔案類型 R27 [2013]。

2020年5月2日 星期六

訓練數學感 249 ─ Total 13

https://4rdp.blogspot.com/2020/05/249-total-13.html

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 是重覆的組合,請問有多少種排列組合不重覆?如果可以重覆有多少種?