前陣子找工作的空檔一時興起就寫了個威力彩的出號程式,和一般的亂數出號來說,我多加了一些統計分析的方式,再去計算出最有中獎相的幾組號碼出來做為參考。
前兩天突然想要擴大比對的範圍,如果全部的組合都拿來比對會如何?所以產生了一個全部組合的需求出來,於是用了PHP很簡單的寫了個威力彩的全部組合程式,非常暴力的用了七層For迴圈來產生號碼。
然後又想說得把這些數據放到DB去,所以就寫了語法要把資料插入MySQL中,結果第一次跑下來,一個小時跑了400多萬筆,全部2200多萬筆跑完估計要五六個小時,於是我就中止了程式,然後上網找資料,後來把Table的index和PK先拿掉,自動增號也取消改成直接寫入序號的方式,最大的改善是在迴圈中把原本一筆一個insert的語法改成先組合先好幾個Values的語法後再insert,這下時間縮到51分鐘左右,有進步,但因為在找資料的過程中有看到一些討論,所以我就想再精進一下。
於是我發現我原本直接在迴圈中做insert並不聰明,因為迴圈會逐層少1來跑,造成每次insert語法後面的values個數都不同,我試著把inser搬到不同層的迴圈去執行,用意是讓inser 一次的values數目可以多一些,但樣做沒有解決根本的問題,所以最多只能縮到22分鐘而已。
2013年7月16日 星期二
2013年4月3日 星期三
JAVA 上完了......啊....
不知不覺..兩周的java基礎課就上完了,
天啊。。我從繼承開始就不知道在上什麼了,
雖然我隱約的感受到老師教的很豐富,但我吸收的實在不多,
昨天講解了一下OCP的事,
我想去考,搞不好會是我人生的第一張證照,
雖然我認為實力比較重要,但社會也很現實,
玩魔獸入團都要看成就了,
我想現在的企業會看證照也不是什麼過份的事,
在現實的社會,就照現實的遊戲規則走吧...
天啊。。我從繼承開始就不知道在上什麼了,
雖然我隱約的感受到老師教的很豐富,但我吸收的實在不多,
昨天講解了一下OCP的事,
我想去考,搞不好會是我人生的第一張證照,
雖然我認為實力比較重要,但社會也很現實,
玩魔獸入團都要看成就了,
我想現在的企業會看證照也不是什麼過份的事,
在現實的社會,就照現實的遊戲規則走吧...
2013年3月28日 星期四
JAVA-Day8 NetBeans
前兩天的繼承,我覺得有點難消化,這周要找時間好好複習一下,今天談到例外的處理,這塊滿有趣的,但是也不好處理,完全看設計者的用心程度而定,
這兩天也開始教NetBeans的使用,今天的作業是把先前的找零程度拿出來用,然後加上自訂的例外處理程式:
老師要求用物件導向的方式來做,所以把一些判斷都拉到另一個class去處理:
這兩天也開始教NetBeans的使用,今天的作業是把先前的找零程度拿出來用,然後加上自訂的例外處理程式:
老師要求用物件導向的方式來做,所以把一些判斷都拉到另一個class去處理:
public class cal2 {
static int sumTotal(int lcdNum , int ramNum , int mouseNum ,int keyNum) throws Exception
{
if (lcdNum > 0 && ramNum >0 && mouseNum > 0 && keyNum>0)
{
int sum = lcdNum * 3980 + ramNum * 2160 + mouseNum * 699 + keyNum * 1099;
return sum ;
}
else
{
throw new Exception();
}
}
static int payChange(int payText) throws Exception
{
if (payText > 0)
{
return payText;
}
else
{
throw new Exception();
}
}
static String payCoins (int Coins)
{
int thousand =(int)(Coins / 1000);
int hundred =(int)((Coins%1000)/100);
int ten =(int)((Coins%100)/10);
int dol5 =(int)((Coins%10)/5);
int dol1 =(int)(Coins%5);
String res="\n千元鈔:"+thousand+"張"+
"\n百元鈔:"+hundred+"張"+
"\n十元幣:"+ten+"個"+
"\n五元幣:"+dol5+"個"+
"\n一元幣:"+dol1+"個";
return res;
}
}
2013年3月25日 星期一
Day-5 陣列
今天主要是在談陣列,
我自己比較有注意到的是在建立陣列時,陣列中能存入的資料型態必須統一,
所以在宣告時就必須指定資料型態,再放入元素,這和以前接觸的js及as都不相同;
下午老師逐步講解了七個注意事項,不過我精神無法集中就是了
陣列在宣告和使用上有滿多需要注意的地方,這部份這周要找時間好好複習一下才行。
我自己比較有注意到的是在建立陣列時,陣列中能存入的資料型態必須統一,
所以在宣告時就必須指定資料型態,再放入元素,這和以前接觸的js及as都不相同;
下午老師逐步講解了七個注意事項,不過我精神無法集中就是了
陣列在宣告和使用上有滿多需要注意的地方,這部份這周要找時間好好複習一下才行。
2013年3月22日 星期五
Day 4 建構子 函數
今天上的東西對我來說是屬於玄學的開始,雖然花時間理解一下就懂了,最近一到下午的課就會無法集中精神,不知道是不是因為冷氣不夠冷,但如果開太冷,一定會有人受不了,老師又說喝咖啡對身體不好,搞得我很緊張,這幾天一回到家就有種超累的感覺。
今日筆記:
建構子:
每個建構子中的引數都是不同的,牽涉到全域和區域變數的問題,
如果要在建構子的引數中使用類別的變數,可以使用this來指定
if (chi>100 || chi<0)
{
errmessage = "國文成績資料超出範圍,以零分計算";
chi = 0;
}else
{
this.chi = chi ;
}
if (eng >100 || eng < 0)
{
errmessage = "英文成績資料超出範圍,以零分計算";
eng = 0 ;
}else
{
this.eng = eng ;
}
}
在多型的建構子中,如果要引用別的建構子的部份(前提是內容必須部份相同)也可以使用this ,但必須要放在第一行
student(String x,int chi , int eng)
{
this(chi , eng);
name = x;
this.sum = this.chi + this.eng;
}
建構子中可以使用方法,但方法不可引用建構子
包覆類別大多除了擁有基本類別的特性外也同時可以提供自身的方法,主要是做為資料型態轉換之用。
今日筆記:
建構子:
每個建構子中的引數都是不同的,牽涉到全域和區域變數的問題,
如果要在建構子的引數中使用類別的變數,可以使用this來指定
if (chi>100 || chi<0)
{
errmessage = "國文成績資料超出範圍,以零分計算";
chi = 0;
}else
{
this.chi = chi ;
}
if (eng >100 || eng < 0)
{
errmessage = "英文成績資料超出範圍,以零分計算";
eng = 0 ;
}else
{
this.eng = eng ;
}
}
在多型的建構子中,如果要引用別的建構子的部份(前提是內容必須部份相同)也可以使用this ,但必須要放在第一行
student(String x,int chi , int eng)
{
this(chi , eng);
name = x;
this.sum = this.chi + this.eng;
}
建構子中可以使用方法,但方法不可引用建構子
包覆類別大多除了擁有基本類別的特性外也同時可以提供自身的方法,主要是做為資料型態轉換之用。
2013年3月21日 星期四
Day-3 迴圈 class
我原本以為迴圈可以玩上一天的,沒想到一個上午就結束了,可能是迴圈的變化太多,所以日後有遇到再說吧..XD。
下午老師講解了一下OCJP現在的考照相關事項,也鼓勵大家儘量去考一張起來,不過考一次要花4500元,很多人會卻步吧。
最後終於開始說要進入到java的正題,也就是物件導向的設計方式,
分為靜態和動態class 的部份,這邊我開始覺得有點玄了,和以前學的東西有點不一樣,
聽到會想睡,這點我要想辦法解決。
今天的作業是寫一個class來判斷輸入值的範圍,並從main來取得輸入值:
下午老師講解了一下OCJP現在的考照相關事項,也鼓勵大家儘量去考一張起來,不過考一次要花4500元,很多人會卻步吧。
最後終於開始說要進入到java的正題,也就是物件導向的設計方式,
分為靜態和動態class 的部份,這邊我開始覺得有點玄了,和以前學的東西有點不一樣,
聽到會想睡,這點我要想辦法解決。
今天的作業是寫一個class來判斷輸入值的範圍,並從main來取得輸入值:
2013年3月20日 星期三
Day-2 條件判斷式
今天幾乎一整天都在講條件判斷式,課堂範例也都是if .. else的練習,switch..case的題目倒是滿少的。
講師說,我們多練習,多打字,習慣成自然,就比較好學,就和學英文一樣,多背多用而已,這我還滿認同的,只不過整天七個小時都在if ...else中渡過,對我來說是太輕鬆了點,比較有收獲的地方是對於java資料型態和資料型態轉換有比較熟悉一點,畢竟相較以前學的php,javascript,actionscript3來說,java在這方面是嚴謹多了,不過就象良兄說的"嚴謹的語法就代表效率"。
今天有出作業,比課堂練習還簡單:
講師說,我們多練習,多打字,習慣成自然,就比較好學,就和學英文一樣,多背多用而已,這我還滿認同的,只不過整天七個小時都在if ...else中渡過,對我來說是太輕鬆了點,比較有收獲的地方是對於java資料型態和資料型態轉換有比較熟悉一點,畢竟相較以前學的php,javascript,actionscript3來說,java在這方面是嚴謹多了,不過就象良兄說的"嚴謹的語法就代表效率"。
今天有出作業,比課堂練習還簡單:
2013年3月19日 星期二
開始學JAVA
結束了一周的FLASH Action Script 3.0的課程,今天終於開始了JAVA的程式課程,上了一周的課,我開始認定這次的職訓應該不會讓我太失望,紮紮實實的,每天寫程式。
今天的課程從計算機概論開始說,因為老師先假設大家都非本科系也沒基礎,所以整個上午我是很輕鬆的渡過,上午也實裝的JDK。
下午開始有練習,基本上就是照著老師說的內容來打,然後編譯看結果,不過老師有一直強調一些小地方,像是字串和非字串的關聯,+的作用等等的,同時也要求大家不要複製貼上,儘量都先打一遍。
最後有講解了一下變數的使用及規範,
今天算是真的很基礎,大致上的內容都是以前我就多少知道的,但是以這個教學速度來看,大概這周也會教不少,希望自己都能夠好好吸引。
不過也因為今天很輕鬆,所以我也在課堂時間把flash小遊戲的一些關鍵程式碼給想完了,改良版的打地鼠遊戲應該這周可以完成吧...
訂閱:
文章 (Atom)