首页 > 编程知识 正文

用python破解数学教育,python破解教程

时间:2023-12-27 22:27:15 阅读:325774 作者:PWRD

本文目录一览:

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

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。