本文目錄一覽:
- 1、用Python語言解決高中的古典概率問題: 有A、B兩個袋子,A袋中裝有4個白
- 2、用python解方程問題,
- 3、python怎麼做數學函數題
- 4、使用python解決提到數學題
- 5、用python如何得到一個方程的多個解
- 6、如何利用python自學數
用Python語言解決高中的古典概率問題: 有A、B兩個袋子,A袋中裝有4個白
這是個數學問題,我可以模擬這種情況,測試的次數越多越接近正確答案。(只是接近,畢竟是模擬這個過程)
#coding:utf-8
import random
def test(n,T):#n代表各取n個球 T代表測試的次數
count = 0
count1 = 0
while count1 T:
a = [0,0,0,0,1,1]# 0代表白球,1代表黑球
b = [0,0,0,1,1,1,1]
if int(n) = len(a):
list1 = random.sample(a,n)
for i in list1:
a.remove(i)
list2 = random.sample(b,n)
for i1 in list2:
b.remove(i1)
b.append(i)
a.append(i1)
print a,b
count1 += 1
if a.count(0) == 4:
count += 1
print ‘p = %d/%d’%(count,T)
用python解方程問題,
完全的暴力:
i=0
while (~i1) or (i%3!=2) or (i%5!=4) or (i%6!=5):
i+=7
print i
考慮數學上的優化——
設階梯數為x,則可聯立以下同餘方程:
x=1(mod 2)
x=2(mod 3)
x=4(mod 5)
x=5(mod 6)
x=0(mod 7)
前四個同餘方程又可改寫為:
x=2-1=-1(mod 2)
x=3-1=-1(mod 3)
x=5-1=-1(mod 5)
x=6-1=-1(mod 6)
聯立得:x=-1(mod lcm(2,3,5,6)=30)
交上最後一個同餘方程得:x%30==29且x%7==0
到這步時,便可以再打一個暴力:
i=0
while i%30!=29:
i+=7
print i
考慮繼續優化——
原同餘方程又可改寫為:
x=30*m+29(m∈N)
x=7*n(n∈N+)
聯立得:
30*m+29=7*n
即:n=(30*m+29)/7=4*m+4+(2*m+1)/7
∵n∈N+
∴(2*m+1)/7∈N
∴m=3(mod 7)
∴m最小為3,n最小為17,x最小為119
於是有O(1)的程序:
print 119
python怎麼做數學函數題
【相關學習推薦:python教程】
python做數學函數題的方法:
1、打開CMD命令行以後我們先來看一個求平方的函數,如下圖所示,用pow即可計算某個數的幾次方
2、接下來我們可以運用abs函數來求某一個數的絕對值,如下圖所示
3、在遇到小數的時候,我們經常需要捨棄小數的部分直接用整數,那麼就可以用floor函數了,但是直接用的話是報錯的,如下圖所示
4、這個時候我們需要導入math模塊,因為floor函數在math模塊中,如下圖所示
5、接下來我們還會用到math函數中的開平方根的函數sqrt,如下圖所示
6、最後我們在應用數學函數的時候可以直接將起賦值給某個變量,然後直接調用該變量即可,如下圖所示
使用python解決提到數學題
先設s=25x+20y+60z
再隨便設y=0,z=0.得到x=60.
這說明解中的x的範圍在[0,60]內.
之後就是在[0,60]範圍內尋找這個解的過程了
簡單的可以讓x取遍從0到60這61個數,找出其中最大的就行了
y的值也做同樣遍歷.z只取最大的就可以了
max, maxy = 0, 0
for x in range(61):
maxy = 200 – x
if maxy (180 – 3 * x):
maxy = 180 – 3 * x
for y in range(maxy + 1):
z = 200 – x – 2 * y
if z (180 – 3 * x – y):
z = (180 – 3 * x – y)
if max (25 * x + 20 * y + 60 * z):
max = (25 * x + 20 * y + 60 * z)
print “x = %d, y = %d, z = %d, max = %d” %(x, y, z, max)
好久沒寫python了..語法都是剛剛查的.可能有錯誤哈.效率看起來也不高
用python如何得到一個方程的多個解
方法/步驟
用Python解數學方程,需要用到Python的一個庫——SymPy庫。
SymPy是符號數學的Python庫,它的目標是成為一個全功能的計算機代數系統,同時保持代碼簡潔、易於理解和擴展。
如果你的電腦上還沒有安裝sympy庫,那就趕緊安裝吧,安裝命令:
pip3 install sympy
請點擊輸入圖片描述
先來解一個簡單點的方程吧。
題目: 5x + 20 = 100
先直接上代碼:
from sympy import *
x = Symbol(‘x’)
print(solve([5*x + 20 – 100], [x]))
請點擊輸入圖片描述
再來一個複雜點的二元一次方程吧。
題目:3x + 4y =49, 8x- y = 14
代碼如下:
from sympy import *
x = Symbol(‘x’)
y = Symbol(‘y’)
print(solve([3*x + 4*y – 49, 8*x – y – 14], [x, y]))
請點擊輸入圖片描述
有沒有發現規律呢,簡單總結一下:
1)變量賦值,使用symbol函數轉換;
2)將方程式移到方程的左邊,使右邊等於0;
3)使用solve函數解方程。
當然了,python的基礎語法必須掌握,至少需要掌握python最基礎的算數運算符。
+ 加 —- 兩個對象相加
– 減 —– 得到負數或是一個數減去另一個數
* 乘 —– 兩個數相乘或是返回一個被重複若干次的字符串
/ 除 —– x 除以 y
% 取模 —– 返回除法的餘數
** 冪 —– 返回x的y次冪
log() 對數—–對數 log()
下面來個難度大點的方程。
請點擊輸入圖片描述
代碼如下:
from sympy import *
t = Symbol(‘t’)
x = Symbol(‘x’)
m = integrate(sin(t)/(pi-t), (t, 0, x))
print(integrate(m, (x, 0, pi)))
請點擊輸入圖片描述
如何利用python自學數
關於自學python,個人最大的3點經驗:
找一本淺顯易懂,例程比較好的教程,從頭到尾看下去。不要看很多本,專註於一本。把裡面的例程都手打一遍,搞懂為什麼。我當時看的是《簡明python教程》,不過這本書不是非常適合零基礎初學者。
去找一個實際項目練手。我當時是因為要做一個網站,不得已要學python。這種條件下的效果比你平時學一門新語言要好很多。所以最好是要有真實的項目做。可以找幾個同學一起做個網站之類。注意,真實項目不一定非要是商業項目,你寫一個只是自己會用的博客網站也是真實項目,關鍵是要核心功能完整。
最好能找到一個已經會python的人。問他一點學習規劃的建議(上知乎也是個途徑),然後在遇到卡殼的地方找他指點。這樣會事半功倍。但是,要學會搜索,學會如何更好地提問。沒人願意幫你寫作業或是回答“一搜便知”的問題。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/256981.html