本文目录一览:
- 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的人。问他一点学习规划的建议(上知乎也是个途径),然后在遇到卡壳的地方找他指点。这样会事半功倍。但是,要学会搜索,学会如何更好地提问。没人愿意帮你写作业或是回答“一搜便知”的问题。