2007-02-28

質數

  定義:任何整數若其因數只有1與自身則為質數。
  ex. 7只能因式分解成1*7,所以是質數;8因式分解為2*2*2,所以不是質數。

  因此可以得到一演算法來驗證某數X是否為質數:用2~X-1的數值對X取餘數,若2~X-1有任何一個數值可以整除X,則X就不是質數;反之,若2~X-1都不能整除X,那X就是質數。
  ex. X=7
    X%2 = 1
    X%3 = 1
    X%4 = 3
    X%5 = 2
    X%6 = 1
  2~6都不能整除7,則7是質數。

  根據這想法實作出:讓使用者輸入一變數input,程式則印出1~input範圍間的所有質數,並再最後一行印出質數個數。程式如下:

#include <stdio.h>
#include
<time.h>

int main() {
int i, j ;
int input ;
int isPrime ;
int count ;
clock_t start, end ;
printf("程式可以找出1~N範圍內的值數, 並將之列印.\n") ;
printf("請輸入N值: ") ;
scanf("%d", &input) ;
do {
start = clock() ;
count = 0 ;
for(i=2 ; i<=input ; i++) {
isPrime = 1 ;
for(j=2 ; j<i ; j++) {
if(i%j == 0) {
isPrime = 0 ;
break ;
}
}
if(isPrime) {
printf("%4d ", i) ;
count++ ;
}
}
printf("\n共%d個\n", count) ;
end = clock() ;
printf("clock: %d\n", end-start) ;
} while(scanf("%d", &input)!=EOF) ;
return 0 ;
}

  不過這演算法感覺上似乎有點慢,再回憶一下求質數的方法,是否記得質數的驗證不需要把2~X-1都拿來驗證?只需要驗證2~sqrt(X-1)就夠了!
  PS. sqrt表示開根號
#include <stdio.h>
#include
<time.h>
#include
<math.h>

int main() {
int i, j ;
int input ;
int isPrime ;
int count ;
clock_t start, end ;
printf("程式可以找出1~N範圍內的值數, 並將之列印.\n") ;
printf("請輸入N值: ") ;
scanf("%d", &input) ;
do {
start = clock() ;
count = 0 ;
for(i=2 ; i<input ; i++) {
isPrime = 1 ;
for(j=2 ; j<=sqrt(i) ; j++) {
if(i%j == 0) {
isPrime = 0 ;
break ;
}
}
if(isPrime) {
printf("%4d ", i) ;
count++ ;
}
}
printf("\n共%d個\n", count) ;
end = clock() ;
printf("clock: %d\n", end-start) ;
} while(scanf("%d", &input)!=EOF) ;
return 0 ;
}

  在我電腦上以1~99999來run程式,第一個演算法大概要花13828個clock執行;第二個演算法則只需要1266個clock執行。當然如果範圍越大兩者效率差別會更加明顯!

Word轉PDF


  1. 下載及安裝「PDF995 Printer Driver」、「Free Converter」。

  2. 先執行安裝Free Converter。

  3. 接著安裝PDF995 Printer Driver。

  4. 開啟預轉換的Word文件,點選「檔案」→「列印」

  5. 印表機選擇為「PDF995」,並按下列印。

  6. 選擇儲存路徑,並確定儲存檔名後,點選確定即可。轉換成功後會自動開啟PDF!

註:PowerPoint檔案也可用此方法轉檔產生PDF。

2007-02-24

【Q445】Marvelous Mazes

題目: http://acm.uva.es/p/v4/445.html

說明:
  單純的字元代換程序而已!

程式下載: http://yaushung.googlepages.com/2007022402.c

程式內容:

#include <stdio.h>

int main() {
char input ; /* 當次輸入 */
int pre = 0 ; /* 計算次數 */
while((input=getchar()) != EOF) {
if(input == '!') {
putchar('\n') ;
pre = 0 ;
}
else if(input=='b') {
while(pre-- > 0) {
putchar(' ') ;
}
pre = 0 ;
}
else if(input=='*' (input>='A' && input<='Z')) {
while(pre-- > 0) {
putchar(input) ;
}
pre = 0 ;
}
else if(input == '\n') {
putchar('\n') ;
pre = 0 ;
}
else {
pre += input-'0' ;
}
}
return 0 ;
}

40個你不可不知的Google常見服務!

  轉錄文章。詳細內容請參考最下面連結!

  最近在遠見的《每一秒都在改造世界誰能不怕Google?》文章中,看到目前Google已經推出520種服務,並且以平均一個禮拜推出一個「新玩意」的速度成長,天啊!竟然不知不覺就多達520種了,猶記得不久前市面介紹Google的書籍都還在介紹Google搜尋服務的玩法,一眨眼整脫拉庫的服務就冒出頭來了,Google很喜歡把各種服務分散在各個角落,不過想當然爾,一旦將所有項目整合在一起,想必很可觀,以下我大概整理出40個Google最常見的服務,你能認出幾個呢?


參考連結:http://blog.newserr.com/?p=14

【Q350】Pseudo-Random Numbers

題目: http://acm.uva.es/p/v3/350.html

程式下載: http://yaushung.googlepages.com/2007022401.c

程式內容:

#include <stdio.h>
#include
<stdlib.h>

int main() {
int Z, I, M, L ;
int temp, count ;
int next ; /* But be careful: the cycle might not begin with the seed! */

int index = 1 ; /* 計算第幾個case */
while(1) {
scanf("%d %d %d %d", &Z, &I, &M, &L) ;
if(Z==0 && I==0 && M==0 && L==0)
break ;
count = 1 ;
Z = Z % M ;
I = I % M ;
next = temp = (Z*L+I)%M ;
while(temp != L) {
temp = (Z*temp+I)%M ;
if(temp == next)
break ;
count++ ;
}
printf("Case %d: %d\n", index++, count) ;
}
return 0 ;
}

2007-02-22

【迴圈練習】印星星(四)

印出內容:
  *
 **
***

程式內容:

#include <stdio.h>
#include
<stdlib.h>

int main() {
int i, j, input ;
printf("請輸入行數: ") ;
scanf("%d", &input) ;
for(i=1 ; i<=input ; i++) {
for(j=input-i ; j>0 ; j--) {
printf(" ") ;
}
for(j=1 ; j<=i ; j++) {
printf("*") ;
}
printf("\n") ;
}
system("pause") ;
return 0 ;
}

【迴圈練習】印星星(三)

印出內容:
***
 **
  *

程式內容:

#include <stdio.h>
#include
<stdlib.h>

int main() {
int i, j, input ;
printf("請輸入行數: ") ;
scanf("%d", &input) ;
for(i=input ; i>0 ; i--) {
for(j=input-i ; j>0 ; j--) {
printf(" ") ;
}
for(j=i ; j>0 ; j--) {
printf("*") ;
}
printf("\n") ;
}
system("pause") ;
return 0 ;
}

【迴圈練習】印星星(二)

印出內容:
***
**


程式內容:

#include <stdio.h>
#include
<stdlib.h>

int main() {
int i, j, input ;
printf("請輸入行數: ") ;
scanf("%d", &input) ;
for(i=input ; i>0 ; i--) {
for(j=i ; j>0 ; j--) {
printf("*") ;
}
printf("\n") ;
}
system("pause") ;
return 0 ;
}

【迴圈練習】印星星(一)

  老闆在計概交迴圈時最喜歡出的題目,可以有很多變化形式!

輸出如下:

**
***

程式內容:

#include <stdio.h>
#include
<stdlib.h>

int main() {
int i, j, input ;
printf("請輸入行數: ") ;
scanf("%d", &input) ;
for(i=0 ; i<input ; i++) {
for(j=0 ; j<=i ; j++) {
printf("*") ;
}
printf("\n") ;
}
system("pause") ;
return 0 ;
}

2007-02-20

【Q579】ClockHands

題目: http://acm.uva.es/p/v5/579.html

說明:
  這題不難,不過要注意時針在非整點時會有微小的刻度!

程式下載: http://yaushung.googlepages.com/2007022002.c

程式內容:

#include <stdio.h>

int main() {
int hour, minute ;
float degree ;
while(1) {
scanf("%d:%d", &hour, &minute) ;
if(hour==0 && minute==0)
break ;
if((degree = hour * 30 - minute * 5.5)<0)
degree = -degree ;
printf("%.3f\n", degree>180 ? 360-degree : degree) ;
}
return 0 ;
}

【商業週刊】台灣科技島美名 靠3個台大生撐著

當大陸用國家力量,重金培養頂尖學生,打進全球最重要的ACM大賽時,台大學生只能倚賴自己的天分,證明台灣仍有最頂尖的IT人才。
參考連結:http://www.businessweekly.com.tw/webarticle.php?id=22775

【Q10220】I Love Big Numbers !

題目: http://acm.uva.es/p/v102/10220.html

說明:
  這題必須運用陣列求解,應該還算簡單!

程式下載: http://yaushung.googlepages.com/2007022001.c

程式內容:

#include <stdio.h>

#define
LENGTH 2568

int main() {
int table[LENGTH] = {1} ;
int input ;
int i, j, carry, temp, jj, start ;
while(scanf("%d", &input)!=EOF) {
start = jj = 0 ;
for(i=2 ; i<=input ; i++) {
carry = 0 ;
while(table[jj]==0)
start = jj++ ;
for(j=start ; j<LENGTH ; j++) {
temp = table[j] * i + carry ;
table[j] = temp % 10 ;
carry = temp / 10 ;
}
}
temp = table[0] ;
table[0] = 1 ;
if(start==0)
start++ ;
for(i=start ; i<LENGTH ; i++) {
temp += table[i] ;
table[i] = 0 ;
}
printf("%d\n", temp) ;
}
return 0 ;
}

2007-02-19

【Q374】Big Mod

題目: http://acm.uva.es/p/v3/374.html

說明:
  簡單的題目,重點在於讓執行時間能夠最少,這才是這題的困難所在!數學基礎好一點的應該可以很快想到最佳解^^
  這題也讓我一改之前的想法:迴圈執行效能、記憶體使用一定比遞回來的好。這題用遞迴寫法可以讓程式呈現BigO(1),第一次用迴圈寫的時候卻需要BigO(n),在效率來說確實落差很大;就記憶體來看,迴圈寫需要其他變數儲存過程的數值,而遞迴寫法只需要原本必須的三個變數:B、P、M,顯然也較迴圈來得優!

程式下載: http://yaushung.googlepages.com/2007021903.c

程式內容:

#include <stdio.h>

int bigMod(int B, int P, int M) ;

int square(int n) ;

int main() {
int B, P, M ;
while(scanf("%d\n%d\n%d", &B, &P, &M)!=EOF) {
printf("%ld\n", bigMod(B%M, P, M)) ;
}
return 0 ;
}


int bigMod(int B, int P, int M) {
if(P==0)
return 1 ;
else if((P%2)==0)
return square(bigMod(B, P/2, M)) % M ;
else

return (B * bigMod(B, P-1, M)) % M ;
}

int square(int n) {
return n*n ;
}

【Q568】Just the Facts

題目: http://acm.uva.es/p/v5/568.html

說明:
  應該算簡單的一題,如果演算法是先算出階乘後才取出最小非0項,應該會發現數直到某一大小後,答案就是錯的,那是因為階乘的成長速度很快,而題目又要求可以接受10000階乘,即便用long long型態都不夠放,因此最直覺想法是不可行的!

程式下載: http://yaushung.googlepages.com/2007021902.c

程式內容:

#include <stdio.h>

int main() {
int input, count ;
long int temp ;
while(scanf("%d", &input)!=EOF) {
temp = 1 ;
for(count=1 ; count<=input ; count++) {
temp = temp * count ;
if((temp%10)==0)
temp /= 10 ;
temp %= 100000 ;
}
while((temp%10)==0)
temp /= 10 ;
printf("%5d -> %d\n", input, temp%10) ;
}
return 0 ;
}

【Q443】Humble Numbers

題目: http://acm.uva.es/p/v4/443.html

說明:
  應該是目前做ACM花最久時間Debug的一題>"<
  這題應該要注意型態必須用logn long int才能完整表達正確數值,再來就是英文數值的表達...(得承認我英文不好)113的序數應該表達成113th而不是113rd(113必須拆成100+13,其中13是13th所以是113th,尾數11~13亦然...)。

程式下載:http://yaushung.googlepages.com/2007021901.c

程式內容:

#include <stdio.h>

long long number[5842] = {1, 2, 3, 4, 5, 6, 7} ;

long long humble(int order) ;

static int count = 6 ;

int main() {
int input, test ;
while(1) {
scanf("%d", &input) ;
if(input == 0)
break ;
printf("The %d", input) ;
if((input%100 - input%10) == 10)
printf("th") ;
else {
test = input % 10 ;
if(test == 1)
printf("st") ;
else if(test == 2)
printf("nd") ;
else if(test == 3)
printf("rd") ;
else

printf("th") ;
}
printf(" humble number is %lld.\n", humble(input)) ;
}
return 0 ;
}

long long humble(int order) {
long long temp ;
int i, j ;
long long min ;
order-- ;
if(order <= count)
return number[order] ;
while(count < order) {
min = 0 ;
for(i=0 ; i<count ; i++) {
temp = number[i] * 7 ;
if(temp <= number[count])
continue ;
else if(min>temp min==0)
min = temp ;
temp = number[i] * 5 ;
if(temp <= number[count])
continue ;
else if(min>temp min==0)
min = temp ;
temp = number[i] * 3 ;
if(temp <= number[count])
continue ;
else if(min>temp min==0)
min = temp ;
temp = number[i] << 1 ;
if(temp <= number[count])
continue ;
else if(min>temp min==0)
min = temp ;
}
number[++count] = min ;
}
if(count<order)
count = order ;
return number[order] ;
}

2007-02-18

下載Google Video與YouTube影片?

  嗯...有需要自己去參考。跟我沒關係喔...XD
http://yuoo.com.tw/video/download-method/downlod-method.htm

【Q476】 Points in Figures: Rectangles

題目:http://acm.uva.es/p/v4/476.html

說明:
  檢查平面座標上的點有沒有落在矩形裡面,要注意使用的變數型態!

程式下載:http://yaushung.googlepages.com/2007021802.c

程式:

#include <stdio.h>

int containTest(float r1_x, float r1_y, float r2_x, float r2_y, float p1, float p2) ;


int main() {
int rectangle = 0 ;
int count ;
int flag ;
int point_num = 1 ;
double r1_x[10], r1_y[10], r2_x[10], r2_y[10], p1, p2 ;
while(getchar() != '*') {
scanf("%lf %lf %lf %lf\n", &r1_x[rectangle], &r1_y[rectangle], &r2_x[rectangle], &r2_y[rectangle]) ;
rectangle++ ;
}
scanf("%lf %lf", &p1, &p2) ;
while(p1!=9999.9 p2!=9999.9) {
flag = 1 ;
for(count=0 ; count<rectangle ; count++) {
if(containTest(r1_x[count], r1_y[count], r2_x[count], r2_y[count], p1, p2)) {
printf("Point %d is contained in figure %d\n", point_num, count+1) ;
flag = 0 ;
}
}
if(flag)
printf("Point %d is not contained in any figure\n", point_num) ;
point_num++ ;
scanf("%lf %lf", &p1, &p2) ;
}
return 0 ;
}


int containTest(float r1_x, float r1_y, float r2_x, float r2_y, float p1, float p2) {
return (p1-r1_x)>0 && (r1_y-p2)>0 && (r2_x-p1)>0 && (p2-r2_y)>0 ;
}

【 Q488】Triangle Wave

題目:http://acm.uva.es/p/v4/488.html

說明:
  適合初學者用來練習迴圈的應用!

程式下載:http://yaushung.googlepages.com/2007021801.c

內容:

#include <stdio.h>

int main() {
int number, amp, freq, n, i ;
scanf("%d\n", &number) ;
while(number-- > 0) {
scanf("%d\n%d", &amp, &freq) ;
while(freq-- > 0) {
for(n=1 ; n<=amp ; n++) {
for(i=0 ; i<n ; i++) {
printf("%d", n) ;
}
printf("\n") ;
}
for(n-=2 ; n>0 ; n--) {
for(i=n ; i>0 ; i--) {
printf("%d", n) ;
}
printf("\n") ;
}
if(freq > 0 number > 0)
printf("\n") ;
}
}
return 0 ;
}

2007-02-17

【Q:494】Kindergarten Counting Game

題目:http://acm.uva.es/p/v4/494.html

說明:
  計算每行的words個數並且印出,要注意的地方在於題目對於word的定義→字母的連續組合才能算是word!!

程式:http://yaushung.googlepages.com/2007021703.c

內容:

#include <stdio.h>

int main() {
int ch, words, flag ;
while((ch=getchar()) != EOF) {
words = 0 ;
flag = 1 ;
while(ch != '\n') {
if(((ch>='a' && ch<='z') (ch>='A' && ch<='Z'))) {
if(flag) {
words++ ;
flag = 0 ;
}
}
else

flag = 1 ;
ch = getchar() ;
}
printf("%d\n", words) ;
}
return 0 ;
}

【Q272】TeX Quotes

題目:http://acm.uva.es/p/v2/272.html

說明:
  信心題,把雙引號字元"作替換,第一次出現用``替換,第二次出現用''替換,反覆這樣的規律就可以達到題目要求!

程式:http://yaushung.googlepages.com/2007021702.c

內容:

#include <stdio.h>

int main() {
int ch ;
int flag = 1 ;
while((ch = getchar()) != EOF) {
if(ch == '"') {
if(flag++%2) {
putchar('`') ;
putchar('`') ;
}
else {
putchar('\'') ;
putchar('\'') ;
}
}
else {
putchar(ch) ;
}
}
return 0 ;
}

【Q100】3n+1 Problem

題目:http://acm.uva.es/p/v1/100.html

  這題基本上沒有太大困難,不過有點小機車處...
For any two numbers i and j you are to determine the maximum cycle length over all numbers between i and j.
  就這關鍵字讓我debug很久,深信自己答案的正確性,卻一直收到WA...差點就給他翻桌了>"<>>>>i和j之間,並不代表i一定恆小於j,所以程式必須要加上這部份的判斷...嘆氣(雙手攤)

程式: http://yaushung.googlepages.com/2007021701.c

內容:

#include <stdio.h>

int q100(int n) ;

int main() {
int i, j, k, sum, temp ;
while(scanf("%d %d", &i, &j) != EOF) {
sum = 0 ;
k= i>j ? j : i ;
for( ; k<=j k<=i; k++) {
temp=q100(k) ;
if(sum < temp)
sum = temp ;
}
printf("%d %d %d\n", i, j, sum) ;
}
return 0 ;
}


int q100(int n) {
int length = 1 ;
while(n != 1) {
length++ ;
if(n % 2)
n = 3 * n + 1 ;
else
n = n / 2 ;
}
return length ;
}

2007-02-16

Why use Gmail?

  Why use Gmail?

  讓Google推出的宣傳影片告訴你!

  →http://www.youtube.com/watch?v=uBbmiQhuAhU

2007-02-15

【Q136】 Ugly Numbers

題目:
Ugly numbers are numbers whose only prime factors are 2, 3 or 5. The sequence
1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, ...
shows the first 11 ugly numbers. By convention, 1 is included.
Write a program to find and print the 1500'th ugly number.

  這題目看似簡單,用直覺的想法莫過於一一檢查其因數是否只有2, 3或5,對於這樣的演算法去run花了109秒。程式如下(或下載):

#include <stdio.h>
#include
<stdlib.h>
#include
<time.h>

int isUgly(int number) ;

int genUgly(int order) ;

int main() {
time_t start, end ;
time(&start) ;
int count = 0 ;
int i = 0 ;


while(count < 1500) {
if(isUgly(++i))
count++ ;
}
printf("%d\n", i) ;
time(&end) ;
printf("It takes %.0f seconds!!\n", difftime(end, start)) ;
system("pause") ;
return 0 ;
}


int isUgly(int number) {
while(!(number%2))
number >>= 1 ;
while(!(number%3))
number /= 3 ;
while(!(number%5))
number /= 5 ;

if(number > 1) {
return 0 ;
}
return 1 ;
}

  這題目的其中要義應該是要解題者想出更有效率的演算法,上面的作法是檢查該數字是不是Ugly Number;另一種想法則是去產生Ugly Number,用這演算法去run時間一秒都不需要,瞬間跑出結果,這也印證了好的演算法與不好的演算法差異是很大的!程式如下(或下載):

內容:
#include <stdio.h>
#include
<stdlib.h>

int number[1500] = {1, 2, 3, 4, 5} ;
int base[3] = {2, 3, 5} ;


int ugly(int order) ;
int genUgly(int count) ;

int main() {
printf("The 1500'th ugly number is %d.\n", ugly(1500) ) ;
system("pause") ;
return 0 ;
}


int ugly(int order) {
int count = 4 ;
int temp, i, j ;
int min ;
order-- ;
if(order < 5)
return number[order] ;
while(count < order) {
min = 0 ;
for(i=0 ; i<count ; i++) {
for(j=0 ; j<3 ; j++) {
temp = number[i]*base[j] ;
if(temp <= number[count]) {
continue ;
}
else if(min==0 min > temp) {
min = temp ;
}
}
}
number[++count] = min ;
}
return number[order] ;
}

Gmail提供使用者自行註冊

  似乎是最近的事情,Gmail已經不需要再透過邀情函就可以註冊新帳戶了!想當初有人曾在Y拍上拍出一封近萬元的邀請函,隨著擁有者越來越多,到現在的全面開放註冊,這種曾經意味著網路貴族的奢華象徵也宣告結束!
  還沒有Gmail的帳戶嗎?!或許你應該來嘗試一下!
http://gmail.google.com

2007-02-14

密碼學常見名詞

  專題兩大主軸:Secure Processing、Low-power...>"<
明文(plaintext)
  未加密的原始訊息。

密文(ciphertext)
  編碼加密過的訊息。

加密(enciphering、encrypting)
  將明文轉成密文的程序。

解密(deciphering、decrypting)
  將密文恢復為明文的程序。

密碼學(cryptography)

密碼系統(cryptography system)

密碼(cipher)

密碼破解(cryptanalysis)

  在不知道加密相關訊息的情況下,所用的解密技術稱之。
  通常也稱為解碼(breaking the code)。

密碼技術(cryptology)
  密碼學和密碼破解的統合技術稱之。

2007-02-12

透過POP3協定從Gmail接收其他信箱的mail

  之前就聽聞Gmail可以透過POP3接收其他信箱的信件(也就是說用Gmail收其他信箱的信件),當時花了不少時間在設定裡找來找去,以為被藏在某個小地方,當然~終究沒有發現到...。


  今天打B時看到有網友提示說要把介面語系切換成英文才可以,試了一下果然如願找到功能選項了!
  1. 點選「設定」→English(US)→儲存
  2. 改完語系後就會看到都是英文的畫面(這是廢話...),接著點選「setting」→Accounts→Add another mail account。然後會跳出一個設定視窗!
  3. 在Email Address中填入你要接收信件的信箱位址,就是你的E-mail,然後點選Next Step。

  4. username就填入信箱的登入帳號、password當然就填入該信箱的密碼、POP Server就看你的信箱業者囉!如果要在原信箱保留一份檔案的話,Leave a copy...這選項得勾起來,Label incoming...這個選項也建議勾起來,這樣以後區別信件來源比較容易。都填完後就按Add account進到下一個頁面。
  5. 最後一個設定,就是問你要不要把該信箱位址設為寄件者位址,也就是說你寄出去的信件顯示你的信箱位址,要不要用這信箱顯示,這就看個人需要囉。

2007-02-07

找偽幣

  程式流程與判斷式的簡單練習題目,其內容:六個硬幣中有一個是假的,先畫出程式判斷流程並且寫出程式實現題目要求。

  題目學習的重點在於:程式流程圖,其次才是程式的撰寫。

  進階的練習可以讓偽幣數目從0~2個,或是判斷偽幣較重或較輕...等。


CODE


#include
#include

int main() {
int a, b, c, d, e, f ;
printf("※簡單的程式邏輯入門題目,\n※a~f六個錢幣中有一個錢幣為假的,\n※程式會自動找出!!\n") ;
printf("進階練習:\n") ;
printf("1)判別假的錢幣比真的錢幣重或輕\n") ;
printf("2)突破一個假錢幣的限制, 也就是可能有0~2個錢幣為假\n") ;
printf("<============================================================>\n") ;
printf("請輸入a幣的重量: ") ;
scanf("%d", &a) ;
printf("請輸入b幣的重量: ") ;
scanf("%d", &b) ;
printf("請輸入c幣的重量: ") ;
scanf("%d", &c) ;
printf("請輸入d幣的重量: ") ;
scanf("%d", &d) ;
printf("請輸入e幣的重量: ") ;
scanf("%d", &e) ;
printf("請輸入f幣的重量: ") ;
scanf("%d", &f) ;
if( (a+b) == (c+d) ) {
if(a==e)
printf("f幣為假\n") ;
else
printf("e幣為假\n") ;
}
else {
if( (a+e) == (c+f) ) {
if(b==a)
printf("d幣為假\n") ;
else
printf("b幣為假\n") ;
}
else {
if(a==b)
printf("c幣為假\n") ;
else
printf("a幣為假\n") ;
}
}
system("pause") ;
return 0 ;
}

藍板FPGA與子板部分針腳對應

藍板FPGA與子板部分針腳對應

Ping腳  對應
P80  CLK
P162  RESET
P168  SEGMENTB<0>
P172  SEGMENTB<5>
P173  SEGMENTB<4>
P174  SEGMENTB<3>
P175  SEGMENTB<6>
P178  SEGMENTB<1>
P179  SEGMENTB<2>
P180  SEGMENT<6>
P181  SEGMENT<5>
P187  SEGMENT<4>
P188  SEGMENT<3>
P189  SEGMENT<2>
P191  SEGMENT<1>
P192  SEGMENT<0>
P193  POINTER


註:SEGMENT分別是兩個七段顯示器

FCU_MFPGA相關資料

網址:http://mfpga.twbbs.org/

檔案下載:http://mfpga.twbbs.org/mfpga

母板電路圖下載:http://yaushung.googlepages.com/schematics.pdf

子板電路圖下載:http://yaushung.googlepages.com/ex_board.pdf

2007-02-05

【95-上】林維新-民主政治理論

  基本上老師的政治立場不會說很明確,各政黨、政治人物他都曾批評過,考試都會有一題申論題,不過不用擔心,在申論題來說即使立場跟老師上課的講法相違背,不過只要言之有理成績並不會比阿諛諂媚的人來得低,上課的氣氛來說...這種課少不了沉悶,如果不想聽老師上課位子找後面一點坐就好,老師不會要求一定要聽他說,只要你不要講話干擾上課進行都很OK!

  以下考題是從蒼穹All Pass版整理過來的,在這學期他似乎很喜歡考公民投票。雖然有重點整哩,不過老師的筆記似乎會有點變動,建議還是跟著超一份比較好,在期中期末前一個星期老師會把考題公佈,大概3題是考前自己要背好、1題申論,乖乖準備考初來大概都九十左右。

PS.老師是有錢人,聽說有一屆曾經坳到老師請全班喝飲料...

考題↓

狹義的民主
(1)國家主權屬全體國民
(2)國家施政以民意為依歸
(3)公民享有選舉、罷免、創制、複決等全部或其中三種、二種、一種。
廣義的民主
(1)政府權力來自人民
(2)國家必須為法治社會
(3)政府制度受到老百百性控制
(4)公平合理的選舉制度(普及、平等、秘密、直接、自由五原則)
(5)人民權力和自由依法受保障
(6)國家福利為全國人民所共享
(7)國家為政黨政治

一.利益團體:
1.定義
凡是具有政治目的,從事政治活動或透過政治程序以爭取成員利益
不論其為政治性的或混雜性的都可稱利益團體
2.類型
(1)功能性團體:凡是旅行相同社會功能的
(2)專業性團體:相同職業 行業的
3.活動方式
(1)遊說(2)宣傳(3)助選

二.公民投票:
1.定義
廣義:公民直接選舉.罷免.創制.複決來決定重大爭議事項
狹義:指人民對是不對人.以直接投票贊成或反對兩項來決定重大爭議事項
2.類型->用來解決何種問題
自決及主權的投票:關於一國的歸屬或領土的變更
憲法複決權:制憲及修憲由人民複決
政策複決權:政府或議會所提出的政策法律由人民複決.決定實施或停止地方自治事項

三.行政中立
1、定義:國家文官在處理行政事務時,應保持依法行政、中立的立場,不應受到其他價值的影響。
2、工務人員處理行政時應有的五個原則:
(1)在職期間應效忠國家、盡忠職守、全心全力執行政府所制定的政策 。
(2)公務人員在執行公務時應保持超然客觀、公平的立場,遵守依法行的原則,一視同仁、不偏不移。
對黨的行政中立、對利益團體的行政中立、對個人價值信仰的行政中立
(3)公務人員在執行公權力時,應採取同一標準,大公無私的對待每一個人、任何團體或政黨。
(4)公務人員在日常生活中應避免介入地方派系或政治紛爭。
 (5)公務人員在處理公務時,應隨時注意民意的趨勢,並做適當回應。
3、公務人員能否參選?是否要辭職?
(1)可參選,但必須留職停薪。
(2)警察、選務人員、國大代表=>這三種人必須辭職。
4、公務人員是否能任意發表政治主張?
基本上是ok的,但是必須自我節制,尤其是越高職等的公務人員,說話必定有其影響力,更需自制。

更改WindowsXP SP1, SP2或2003序號

基於某些原因可能需要更改系統的序號
通常作法是修改登錄檔
不過這太麻煩
之前在網路上看到有人提供快速作法
不過原文出處已經忘記了

步驟:
step1)開啟記事本
step2)將下列程式複製到記事本,並且存檔為key.vbs
step3)關閉記事本,左鍵雙點key.vbs即可輕鬆修改序號

ON ERROR RESUME NEXT
Dim VOL_PROD_KEY
if Wscript.arguments.count<1 then
VOL_PROD_KEY=InputBox("使用說明(OEM版無效):"&vbCr&vbCr&" 本腳本程序將修改當前 Windows 的金鑰序號。請先複製好您欲更改之新金鑰序號,並粘貼到下面空格中,按下確定即可。"&vbCr&vbCr&"輸入序列號:","Windows XP/2003 金鑰更換工具 Silent World","KJQJH-48B24-HG6VG-YQWTV-P6R2Y")
if VOL_PROD_KEY="" then
Wscript.quit
end if
else
VOL_PROD_KEY = Wscript.arguments.Item(0)
end if
VOL_PROD_KEY = Replace(VOL_PROD_KEY,"-","") 'remove hyphens if any
for each Obj in GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf ("win32_WindowsProductActivation")
result = Obj.SetProductKey (VOL_PROD_KEY)
if err = 0 then
Wscript.echo "您的 Windows CD-KEY 修改成功。"
end if
if err <> 0 then
Wscript.echo "修改失敗!請檢查輸入的 CD-KEY 是否與當前 Windows 版本相匹配。"
Err.Clear
end if
next


註:請尊重智慧財產權,該修改序號方法不應作為盜版行為之用!

2007-02-02

(93-上)劉常山-文明史

  老師人不錯,只是如果對歷史沒興趣的人上課大概很容易被催眠,要交一份報告→家族史,基本上不要太扯分數都還能看,期中期末拿分要點在於申論題,最好能夠把他上課講到的例子寫進答案裡,申論通常占40分,如果寫得好也可能滿分,其他題目就是上課筆記,背一背就OK了!

  下面是期中與期末考試重點,到95級準度還頗高!

先發展腦部還是先直立行走
人類起源的說法
還有後面的圖
歷史ㄉ必要條件
第一點--真
第二點--必須有意義
廣義的歷史意義
過去發生的事
嚴格的歷史意義
史學工作者根據史料找出歷史的真指出歷史的意義
哪些行業最重視歷史
why必須符合必要條件
歷史的公用
第一,歷史能謂世人帶來一個精神上的境界,使人的生存時間延長,而神由於萬古之上
第二,啟迪思想,增加智慧
第三,資治是歷史最實際的一種功用
第四,人類進化與文明的樞紐
第五,為了促使世界走向和平
弊害
第一,為野心家所利用
第二,史學工作者故意強調愛國心
第三,史學工作者非故意發抒個人情感
防弊
防弊只能寄望 良史 不斷出現
良史 必須具備真、善、美三種特質
期望歷史對於人類發揮最大功用,莫過於世界史的撰寫了
人類起源ㄉ說法
1演化論
2創造論
3移民說
猿人露西的故事
失落的環節是
800萬年至400萬間
大裂谷
為猿演化成人的因素??

========== 期末考 ==========

中國文明起源說法的流變
1.一元論-炎黃子孫說
2.兩元論-夷夏東西說
3.一元論-龍山型成文化
4.多元文化互動說-六個核心文化交互影響型成中國文化
(1)眾多河流匯集處
(2)向陽山坡地
(3)中石器時代文化基礎
(4)農業革命
歷代政府對食鹽採「徵稅」、「專賣」二種方式獲得財源
宋代遇到邊疆糧草運輸困難,提出方法解決:
入中-商人運輸芻粟,以「要?」取鹽、緡錢、香藥、寶貨於京師或東南州軍,陜西則受
折中-
開中(明代鹽的制度)
行鹽疆界-->只能在湖南湖北賣(固定區域販賣)
銷區引岸-->只許某人專賣
冶鐵技術的改進:
1.鼓風爐的改進-特製皮囊(橐籥ㄊㄨㄛˊㄩㄝˋ)的出現
2.冶鐵爐的擴大
鐵造成的影響:
軍事(武器的改良、戰術的改變)、經濟、教育、文化、政治(兼併的出現)、思想、社會(民間找人才)
考試目的→選人才
人才的三項條件:品德、學識、才能
影響考試公平的因素:
作弊、閱卷、經書解釋、特種考生
考試制度:
1.察舉制度
科目:孝廉
郡守、王國相選才
優點:選才重品德、官多循吏
缺點:(1)累世公卿、門閥→經學家傳(2)假孝子、甲廉吏出現
2.九品中正制度
(州)大中正、(郡)小中正→本地人選才
缺點:上品無寒門、下品無世族
因漢末動亂,衣冠世族到處流散,人名流離失所,無法進行查舉制度
3.科舉制度
分科取士
優點:公正.公平.客觀
缺點:因問過度追求公平、公正
造成課本的標準化--------->
答案的規格化------------->僵化考生思考
相同點(察舉、九品):1.以人選人2.品德-->學士---->才能
不同點(察舉、九品):1.名稱2.外地-->本地人選才3.罰責不一
科舉:1.以考卷選才2.學士--->品德---->才能
察舉==>九品:環境變遷說
九品==>科舉:制度弊病說
余英時反對「高度平衡理論陷阱」的理由:
1.整個理論太簡單
2.人口、土地(數據)→謎
3.動機
關於中國歷史特質的一些看法:
1.重視家族
2.文化延續性高
3.無資本主義社會
4.商人的社會地位低
5.宗教的重要性不如西方
6.法律常落在社會需要之後
申論
對於大學多元入學的評價

【關鍵字:劉常山、文明史、一年級必修】

【95-上】林志敏=>作業系統

  作業成績佔了不少的比例,基本上作業要盡量完成達到助教要求的基本功能,通常多"一點點"花招加上一點舌燦蓮花助教大概就會給一百。至於期中跟期末考除了看考古題外,對於講義的大標題所提到的名詞盡量都要懂並且能解釋,老師喜歡考比較優缺點、特色之類的題目,期中的考古題準度大概只有50%,期末幾乎全部命中!

考古題包
http://yaushung.googlepages.com/20070117OS.rar

【關鍵字:林志敏、作業系統、期中考、期末考、考古題】

【95-上】劉嘉政=>編譯器

期中考考古題(在這屆準度似乎不太準...)

http://yaushung.googlepages.com/200701103.jpg

http://yaushung.googlepages.com/200701104.jpg


期末考考古題(明天考完才知道準度...)

http://yaushung.googlepages.com/200701101.jpg

http://yaushung.googlepages.com/200701102.jpg

================ 考完期末的分隔線 ================
心得:
  挖哩!估計有三十分應該算很高了

================ 期末一週內的惡補 ================
努力寫C-MINUS的compiler,助教要求寫出scan、parser。寫完一個很殘破、免強能用、經常帶點錯誤的code後加上一頁虎爛的心得,我交出去了!

================ 公佈成績的分隔線 ================
感想:
  感謝老師不殺之恩,在我期中與期末都是慘不忍睹的窘境,卻還是說話算話,有寫出程式學期成績就給90以上,天啊!這根本是天降神蹟,似乎在公佈成績的那天...我已經相信上帝的存在@@"
  重點→擺平老劉的方法,還是從期初就開始努力寫出程式吧,期中期末的考試都可以只是幻像...只要你寫出程式來


【關鍵字:劉嘉政、編譯器、Compiler、考古題、期中考、期末考】

【95-上】蔡坤憲=>普通物理

  這老師敎的還不錯,學得到東西,比起當年當掉我的老頭來說好太多了,老師本身有打劍道,偶而會分享一些人生道理,認真上課收穫一定不少!只是老師似乎很容易忘記出作業...

  考試得分要點:上課筆記內容、作業習題一定要會,有小考的話也要讀,這樣下來期中分數近九十,可以不買課本。

作業一
http://yaushung.googlepages.com/ph1.pdf

作業一解答
http://yaushung.googlepages.com/ph1_ans.pdf

作業二
http://yaushung.googlepages.com/ph2.pdf

作業二解答
http://yaushung.googlepages.com/ph2_ans.pdf


[期中考後範圍]

作業-衝量與動量
http://yaushung.googlepages.com/20070111ch9.pdf

作業-Ch10 轉動
http://yaushung.googlepages.com/20070111Ch10.pdf

作業-Ch11 重力
http://yaushung.googlepages.com/20070111Ch11-c.pdf

作業-Ch12 簡諧運動http://yaushung.googlepages.com/20070111Ch12-.pdf

轉動小考+解答
http://yaushung.googlepages.com/2007011101.pdf


【關鍵字:普通物理、蔡坤憲、考古題、作業、解答、詳解】

【95-上】戴嬋玲=>程式語言

  這門課修得很痛苦,不是課程難而是老師的教法...不想多做評論,戴媽媽的教學是眾人皆知的XXXXX,基於輩分倫理還是少言好了(可以考慮多糖?冷了)。

老師期中考前放在網路上給大家參考的"考古題",別懷疑這份是老師自己給的(我也覺得老師自己發考古題給學生很怪...),考完期中的感想:X的,根本沒用!
http://yaushung.googlepages.com/exam-posted.doc

下面這份是真正的期中考考卷>"< http://yaushung.googlepages.com/PL95-mid.doc

聽說是隔壁班善心人士寫的期末參考題目解答(內容有些地方我覺得有些奇怪...)
http://yaushung.googlepages.com/1.doc

PS.還記得選課時老闆說:程式語言當餅乾吃掉,但慢慢我發現給戴媽上的結果是=>餅乾變鐵餅...
========== 期末考後的分隔線 ==========
感想:期末終於沒有虎爛,說考哪裡就考哪裡,所以期中沒考好就拼期末,照老師給的範圍去準備應該都會過。

【關鍵字:戴嬋玲、程式語言、Programming Language、資訊工程、考古題】

【95-上】黃溪春=>資料結構

期中前小考一
http://yaushung.googlepages.com/1.pdf

期中前小考二
http://yaushung.googlepages.com/_2.pdf

期中考
http://yaushung.googlepages.com/200611.pdf

期中後小考一
http://yaushung.googlepages.com/_3.pdf

期中後小考二
http://yaushung.googlepages.com/_4.pdf

【關鍵字:黃溪春、資料結構、考古題、Data Structures、資訊工程】