總網頁瀏覽量

2017年12月15日 星期五

發票問題

一組發票共有8個數字,已知某組發票前2個數字可被2整除,前3個數字可被3整除,前4個數字可被4整除,………,全部8個數字可被8整除,每個數字恰出現一次,求此組發票號碼?

Python Code:

import itertools
w=[]
b=[]
for i in range(1,9):
    w.append(i)
    
nums = itertools.permutations(w) # 它是tuple
p=[]
for x in nums:   
    p.append(x)

p=[list(x) for x in p]

for i in range(len(p)):
    a=[str(x) for x in p[i]]
    b.append(int(''.join(a)))
    
for j in b:
    a7=j//10
    a6=a7//10
    a5=a6//10
    a4=a5//10
    a3=a4//10
    a2=a3//10
    if (j%8)==0 and (a7%7)==0 and (a6%6)==0 and (a5%5)==0 and (a4%4)==0 and (a3%3)==0 and (a2%2)==0:

        print(j)


答案:38165472

            


泡沫排序法

簡單的小程式,可列出「正向排序」與「反向排序」
程式碼:
import time
li=input("請輸入要排序的數(格式[1,2,3]):")
li=eval(li)
b=sorted(li)
c=sorted(li,reverse=True)
print("由小到大排列",b)
print("由大到小排列",c)
time.sleep(8)      

執行檔:
https://drive.google.com/file/d/1_02QJwUDq3znr1Ds2y9KGItlCCp4-Joh/view?usp=sharing

2017年12月14日 星期四

利用Python解網路習題1

Question:有一個正整數a,它分別加上100與168之後,都變成完全平方數,求a?
程式碼:
for i in range(1,100000):
      s=(i+100)**(1/2)  #加100之後開根號
      t=(i+168)**(1/2)  #加168之後開根號
      if (int(s)==s and int(t)==t):  #取整數之後等於本身,則本身為整數
            print(i)
解得 a=156

      

2017年12月12日 星期二

將Python打包成執行檔

~~如何將Python打包成執行檔,使得在沒灌Python的電腦也可以執行~~~

1、在Anaconda3 (64 bit) 選擇 Anaconda Prompt(Anaconda3)

2、在<Python 2019.8.12>目錄下執行pyinstaller -F .\mypython.py

產生一個與檔案相同的資料夾,裡頭的dist有打包後的執行檔







2017年12月5日 星期二

傅利葉級數

原週期函數~~~
f(x)=0  -𝝿<x<0   f(x)=1   0<x<𝝿   f(x+2𝝿)=f(x)
傅利葉級數:
F(x)=0.5+∑2*sin((2n-1)x)/(2n-1)/𝝿       n = 1.....∞
程式碼:
https://drive.google.com/file/d/1_dVkEAD_TDfzubGBgsa7YURTu9Ztav5d/view?usp=sharing

n=5

n=10

n=100

n=1000


2017年12月1日 星期五

海龍公式

輸入三角形的三邊長,可幫你找到面積,若不能形成三角形,要再輸入一次!!!!!

程式碼(Python):

import time
i=0
while i==0 or p<=0:
      a=input("請輸入三角形第一個邊長 ==> ")
      b=input("請輸入三角形第二個邊長 ==> ")
      c=input("請輸入三角形第三個邊長 ==> ")
      a=eval(a);b=eval(b);c=eval(c)
      s=0.5*(a+b+c)
      p=s*(s-a)*(s-b)*(s-c)
      if p<=0:
            print("此三角形不存在,請重新輸入!!!!")
      i+=1
else:
      print("三角形面積為:",p**0.5)
time.sleep(5)

執行檔:(延遲5秒關閉)
https://drive.google.com/file/d/1OMVsM06XZDlebmMLuH7yRWzVLwRqZVi2/view?usp=sharing

2017年11月24日 星期五

2017年6月6日 星期二

數字的位制轉換

輸入一個正整數,可將之轉換成 2 進位 ~~~

可由程式碼自由更改成想要的進位制 

2017.6.6

Runge-Kutta Method 解一次ODE

寫了很久,終於寫出來了 ~ ~ ~

很神奇的解ODE法並畫圖 ~ ~ ~ ~

函數:y'=(2-t)y, y(2)=1

exact solution:exp[-0.5(t-2)^2]

公開程式碼   可自行輸入函數求解

執行檔
https://drive.google.com/file/d/0B03tzGyNUd6RcXhJVGJNbFZvajQ/view?usp=sharing

程式碼
https://drive.google.com/file/d/0B03tzGyNUd6RWUFaUTZGVVlveGs/view?usp=sharing

2017.6.6

2017年5月26日 星期五

水仙花數

輸入n值,可找出比 n 小的水仙花數

測試過可找到第31個水仙花數:912985153

水仙花數定義:http://ppt.cc/ilfHa

有趣的名稱~~~~~
一位自冪數:獨身數
兩位自冪數:沒有
三位自冪數:水仙花數
四位自冪數:四葉玫瑰數
五位自冪數:五角星數
六位自冪數:六合數
七位自冪數:北斗七星數
八位自冪數:八仙數
九位自冪數:九九重陽數
十位自冪數:十全十美數


執行檔
https://drive.google.com/file/d/0B03tzGyNUd6RRVI5OTVtVlY3Yjg/view?usp=sharing

程式檔
https://drive.google.com/file/d/0B03tzGyNUd6ReUpaUjhONHFWak0/view?usp=sharing


2017.5.26

泡沫排序法

@@ 可將輸入的數由小到大排列 @@

執行檔

程式檔


2017.5.27

2017年5月25日 星期四

找完全數

目前可找到4個完全數,目標能找到第5個完全數,有8位數

執行檔
https://drive.google.com/file/d/0B03tzGyNUd6RNENjOC1NWXZXN28/view?usp=sharing

程式碼
https://drive.google.com/file/d/0B03tzGyNUd6ROWRQVDlES011NUE/view?usp=sharing

輸入n個正整數找最大公因數

想法:
先有二個正整數找最大公因數的函式 gcd,一開始先讓 tmp[0]=a[0]接著是 tmp[1]=gcd(tmp[0],a[1]) ~ ~ tmp[2]=gcd(tmp[1],a[2])......
依序下去,就可以得到n個正整數a[0],a[1],.....,a[n-1]的最大公因數~~~

執行檔: https://drive.google.com/file/d/0B03tzGyNUd6RVlZQWHV6TzNPOGc/view?usp=sharing

程式碼:
https://drive.google.com/file/d/0B03tzGyNUd6RME41RS05R0VSTnM/view?usp=sharing

2017年5月17日 星期三

解二、三次方程式

輸入三次方程式 ax^3+bx^2+cx+d=0 的係數 a,b,c,d 即可找出三個解,但若輸入的 a=0,則變成二次方程式,依舊可以求解。


撰寫想法:
依虛根成對定理知三次方程式必有一個實根,用牛頓法找出其中一個後,再做因式分解,變成二次方程式後,代公式求解。

2017年5月11日 星期四

海龍公式

輸入三角形的三邊長,可判斷是否可構成三角形,若是,可得三角形面積…

執行檔: https://drive.google.com/file/d/0B03tzGyNUd6RdFZCUDZKUVZ2Qk0/view?usp=sharing

程式碼:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define area(s,a,b,c) (double)s*(s-a)*(s-b)*(s-c)
int main(int argc, char** argv)
 {
float a,b,c;
printf(" Please input the sides of the triangle ==>");
scanf("%f  %f  %f",&a,&b,&c);
if((area(0.5*(a+b+c),a,b,c))<=0)
printf("It is not a triangle\n");
else
printf("Area of triangle = %f\n",pow(area(0.5*(a+b+c),a,b,c),0.5));
system("pause");
return 0;
}


大階乘計算

經由此程式,可算出 100! 的值,甚至更大…

執行檔:
https://drive.google.com/file/d/0B03tzGyNUd6RdFZaMFhpVkswTTQ/view?usp=sharing

程式碼:
https://drive.google.com/file/d/0B03tzGyNUd6ReEZyN205NWk3cW8/view?usp=sharing