總網頁瀏覽量

2019年9月30日 星期一

最近看到的名言 ~ ~


1、明明可以靠長相,卻偏偏要靠專業

2、讀書的目的就是讓你知道誰在胡說八道

3、專業就是用人家聽得懂的話去告訴他不懂的事




2019年9月20日 星期五

渾身解「數」徵答比賽第一題



潮州高中第一學期 -- 渾身解「數」徵答比賽


第一題:








徵答時間:108.9.20(五)~108.10.3(四)止

答案請寄

ccsh204@apps.ccsh.ptc.edu.tw

或繳交紙本給

教務處辜俊庭老師 ~~




2019年9月18日 星期三

一題極限,用Python 來寫




























but 下面的 Python 發生的錯誤是
TypeError: can't convert expression to float













終於把它寫出來了!!!
用內建的factorial函數就好 ~ ~









答案:exp(-1)



2019年9月16日 星期一

2019 IMO(國際數學奧林匹亞數競賽) 第五題--巴斯銀行












Python Code:

import random

def hand():#手動輸入HT的初始狀態
    global A #A用全域變數 後面才讀得到
    A=[x for x in input()]

def givenumber(): #給一個正整數,找出H跟T
    n=int(input())
    B=[]
    global A
    global h1 # 'H'面朝上的次數
    A=[]
    h1=0
    for i in range(n):
       B.append(random.randrange(0,2*n))
    for j in range(n):
        if (B[j]%2)==0:
            A.append('H')
        else:
            A.append('T')
    print(A)

#hand()
givenumber()

for i in range(1000):
    flag=0 #T面的個數,當flag等於len(A),即全為T時,停止
    for j in range(len(A)):
        if A[j]=='T':
            flag+=1
    if flag==len(A):
        print(i)#輸出第幾次操作可得到全為T
        break
    
    h=0#計算幾個h面朝上
    for k in range(len(A)):
        if A[k]=='H':
            h+=1
    if A[h-1]=='H':#從左邊數來,將第h枚翻過來
        A[h-1]='T'
    else:
        A[h-1]='H'

    


2019年9月5日 星期四

同樣的話,改變一下,禪意更深!!


最近兒子的名言:

「慢慢來,不要急」

我則是把它改成// 

「快快來,不要急」

比較有禪意!!




2019年8月24日 星期六

2000年初到2999年底的所有質數日


質數日介紹:

https://ppt.cc/fdMqtx

20190823除了是823炮戰紀念日之外,也是質數日,群組有人傳了這個新聞,問說有沒有人可以把這1000年所有的53個質數日日期跑出來,索性用Python來寫一下,一開始出來的日期有78個,debug才發現,我的程式把個位數字1也當成質數,再用and指令排除掉個位數字1是質數這個條件,就可以完整的跑出來了!

編號  日期
1     20000107
2     20000503
3     20010223
4     20010313
5     20031223
6     20060107
7     20070823
8     20100907
9     20130223
10     20190523
11     20190823
12     20300317
13     20360317
14     20400307
15     20400823
16     20480107
17     20600317
18     20660617
19     20700103
20     20700223
21     20700307
22     20700523
23     20721013
24     20910103
25     20930113
26     21000313
27     21000907
28     21050503
29     21320107
30     21330313
31     21360223
32     21870223
33     21890107
34     21990523
35     23000617
36     23010313
37     23100313
38     23970313
39     24021013
40     24050503
41     24090907
42     24270223
43     24350503
44     24501223
45     24900307
46     26001013
47     26070313
48     26150503
49     26190313
50     26931013
51     27020113
52     27080107

53     29331013

Python Code:

import math as lp

start=101
end=1232
def isprime(p):
    for i in range(2,int(p**0.5)+1):
        if (p%i)==0:
            return 1 #合數
            break
    else:
        return 0 #質數

flag=0

for i in range(1000):#應到1100
    for j in range(1,13):#月份
        for k in range(20000000+i*10000+j*100+1,20000000+i*10000+j*100+32,2):
            digit=int(lp.log10(k))
            ans=k
            p=[]
            r=[]
            p.append(isprime(k))
            for l in range(digit,0,-1):
                p.append(isprime(k%(10**l)))
                k=k%(10**l)
            r.append(k) #存入個位數,注意1不是質數
            q=set(p)
            q=list(q)
            if len(q)==1 and q[0]==0 and r[0]!=1:
                    flag+=1

                    print(flag,'   ',ans)