跳到主要內容

發表文章

目前顯示的是 11月, 2018的文章

[數學基礎]排列組合

問題分類 袋中有10個球,每個球都標了號碼,從1號標到10號,現在從袋子中抽出3個球,抽出後不得在放回袋子中。 排列問題: 把球上的數字,按照抽出的順序記下,也就是(1 2 3)以及(3 2 1)代表不同樣的事件 組合問題: 把球上的數字記下,但毋須理會球被抽出的先後順序,也就是(1 2 3)以及(3 2 1)代表同樣一件事 組合(Combination): 定義:如果有n個不同物體,取出m個(先後順序不同,但內容一樣,則視為相同) 組合方式: 記做  n C m (因為html打不出正確的格式,先以此方式表示,否則正確的格是應該是n和m會在C的右側,一上一下) 公式: (n*(n-1)*(n-2)*......(n-m+1))/(m*(m-1)*....2*1),可以記做(n!) / (m!(n-m)!) 這個公式的意義在哪邊? 是怎麼推導過來的? 這要從排列定義的著手。 排列(Permutation) 定義:如果有n個不同物體,取出m個(先後順序不同視為不同) 排列方式: 記做  n P m (因為html打不出正確的格式,先以此方式表示,否則正確的格是應該是n和m會在P的右側,一上一下) 公式: n*(n-1)*(n-2)*......(n-m+1),這個意義在於,第一抽有n個可能,第二抽有n-1個可能,第m抽有(n-m+1)種可能。可以記做 n! / (n-m)! 從排列到組合(Permutation to Combination) 從定義來看,排列為從n個中挑出m個後的可能結果後,再乘這m個前後順序不同的所有可能結果,也就是如果10顆球,如果挑出(1 2 3),則這(1 2 3)的先後次序有3 * 2 * 1 = 6種可能結果 寫成數學表達,則是 n P m  =  n C m  *  m P m    由這個等式就可以導出  n C m  = (n!) / (m!(n-m)!) 結語: 理解排列組合的概念,有助於之後關於二項式展開以及數學常數e的定義推導,也是微積分和統計的基石之一。

[學習筆記]Tomcat加入Windows Service

先在command shell使用sc命令 加入服務:sc create ServiceName binPath= 路徑 start= auto(等號後面的空格必須) 刪除服務:sc delete ServiceName e.g 將Tomcat加入到系統服務中: sc create Tomcat binPath= F:\apache-tomcat\bin\startup.bat start= auto 將Tomcat服務刪除: sc delete Tomcat 將tomcat加入系統服務裡面 一、將Tomcat註冊到服務裡面 1,在dos下進入tomcat\bin目錄 2,在命令列輸入service install [服務名,預設Tomcat5] 3,要啟動該服務,輸入:net start 服務名 二、修改、刪除服務 語法:sc create | delete | config 服務名 [參數] 主要參數清單:   start= demand|boot|system|auto|disabled|delayed-auto  //啟動類型   binPath= BinaryPathName                //可執行檔路徑   depend= 依存關係(以 / (斜杠) 分隔)   DisplayName= <顯示名稱>                //螢幕顯示名稱 作用依次是:新建、移除、重佈建服務。 例如:重新佈建服務mysql的執行路徑的方法是: sc config mysql binPath= "新路徑" 參考:   http://fecbob.pixnet.net/blog/post/38258335-tomcat%E5%8A%A0%E5%85%A5%E5%88%B0%E7%B3%BB%E7%B5%B1%E6%9C%8D%E5%8B%99%E4%B8%AD

[疑難雜症]Eclipse 匯入Maven Web專案出現錯誤“Dynamic Web Module 3.1 requires Java 1.7 or newer”

問題現象 maven project的Web專案出現了錯誤"Dynamic Web Module 3.1 requires Java 1.7 or newer" 問題解決 在pom.xml裡面的<build>tag間加上     <plugins>       <plugin>         <groupId>org.apache.maven.plugins</groupId>         <artifactId>maven-compiler-plugin</artifactId>         <version>3.1</version><!-- Servlet 3.1-->         <configuration>           <source>1.8</source><!-- source compile Java version -->           <target>1.8</target><!-- target compile Java version -->         </configuration>       </plugin>     </plugins> 之後在專案上面按右鍵 Maven-> Update Project....來更新專案,錯誤就會消失了。

Log4j2在web application的使用

使用環境: JDK8 Tomcat 9.1 使用log4j2版本: V2.11.1 Maven dependency <dependencies> <dependency> <groupId> org.apache.logging.log4j </groupId> <artifactId> log4j-api </artifactId> <version> 2.11.1 </version> </dependency> <dependency> <groupId> org.apache.logging.log4j </groupId> <artifactId> log4j-core </artifactId> <version> 2.11.1 </version> </dependency> </dependencies> Configuration log4j在web application可以使用log4jConfiguration這個context parameter. 另外log4j會去搜尋 1. servlet的context resource,像是web application的root dir,名稱為logging.xml(要有define context resource的location) 2. 如果沒有定義location,log4j會去搜尋WEB-INF這個folder以log4j2的名稱開頭的檔案 3. 一般的搜尋方式是會去class path找,也就是在src的resource目錄放的話,會在target的class path出現。 開始於結束 log4j2會在web application佈署時開始,而在回收時結束。 設定檔範例: <?xml version="1.0" encoding="utf-8"?> &