總網頁瀏覽量

2018年1月2日 星期二

2017.10月大學程式設計先修檢測 實作題 第一題(邏輯運算子 Logic Operators)

邏輯運算子(Logic Operators)
問題描述
小蘇最近在學三種邏輯運算子 AND、OR和XOR。這三種運算子都是二元運算子,也就是說在運算時需要兩個運算元,例如a AND b。對於整數a與b,以下三個二元運算子的運算結果定義如下列三個表格:
舉例來說:
(1) 0 AND 0 的結果為0,0 OR 0 以及0 XOR 0 的結果也為0。
(2) 0 AND 3 的結果為0,0 OR 3 以及0 XOR 3 的結果則為1。
(3) 4 AND 9 的結果為1,4 OR 9 的結果也為1,但4 XOR 9的結果為0。
請撰寫一個程式,讀入a、b 以及邏輯運算的結果,輸出可能的邏輯運算為何。
輸入格式
輸入只有一行,共三個整數值,整數間以一個空白隔開。第一個整數代表a,第二個整數代表b,這兩數均為非負的整數。第三個整數代表邏輯運算的結果,只會是0 或1。
輸出格式
輸出可能得到指定結果的運算,若有多個,輸出順序為AND、OR、XOR,每個可能的運算單獨輸出一行,每行結尾皆有換行。若不可能得到指定結果,輸出IMPOSSIBLE。(注意輸出時所有英文字母均為大寫字母。)
範例一:輸入
0 0 0
範例一:正確輸出
AND
OR
XOR
範例二:輸入
1 1 1
範例二:正確輸出
AND
OR
範例三:輸入
3 0 1
範例三:正確輸出
OR
XOR
範例四:輸入
0 0 1
範例四:正確輸出
IMPOSSIBLE

Python 程式碼:
a,b,c=input().split()
a=int(a)
b=int(b)
c=int(c)
if a==0 and b==0 and c==0:
      print(" AND\n OR\n XOR\n")
elif a==0 and b==0 and c!=0:
      print("IMPOSSIBLE")
elif a==0 and b!=0 and c==0:
      print("AND")
elif a==0 and b!=0 and c!=0:
      print(" OR\nXOR")
elif a!=0 and b==0 and c==0:
      print("AND")
elif a!=0 and b==0 and c!=0:
      print(" OR\n XOR")
elif a!=0 and b!=0 and c==0:
      print("XOR")
elif a!=0 and b!=0 and c!=0:
      print(" AND\n OR")

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