信息服务平台有哪些网站,网站建设文化流程,兰州app定制开发,网站开发基础知识试题一、实验目的
使用Python解决简单问题
二、实验要求
自主编写并运行代码#xff0c;按照模板要求撰写实验报告
三、实验步骤
本次实验共有4题#xff1a;
自行给定一个从小到大排好序的数组#xff0c;输入一个数并将其插入到原始数组中#xff0c;新的数组还是满足从…一、实验目的
使用Python解决简单问题
二、实验要求
自主编写并运行代码按照模板要求撰写实验报告
三、实验步骤
本次实验共有4题
自行给定一个从小到大排好序的数组输入一个数并将其插入到原始数组中新的数组还是满足从小到大的排列顺序随机生成两个4*4的矩阵X和Y要求用for循环取出X,Y矩阵对应位置的值将其相减后放入新的矩阵Z中随机输入一个矩阵求它的逆矩阵并验证猜数字游戏随机生成一个数x(1x10000)玩家每次输入一个数y如果y大于或小于x则给出相应提示如yx则表示数字猜对了。 四、实验结果
T1 自行给定一个从小到大排好序的数组
输入一个数并将其插入到原始数组中
新的数组还是满足从小到大的排列顺序import randomlength random.randint(5, 10) # 生成数组的长度
arr []
for i in range(0, length):arr.append(random.randint(-100, 100))arr sorted(arr)
print(原数组如下 str(arr))print(请输入一个数)
num int(input())
arr.append(num)
arr sorted(arr)
print(重新排序后 str(arr))T2 随机生成两个4*4的矩阵X和Y
要求用for循环取出X,Y矩阵对应位置的值
将其相减后放入新的矩阵Z中import randomimport numpy as npx np.zeros(shape(4, 4))
y np.zeros(shape(4, 4))for i in range(0, 4):for j in range(0, 4):x[i][j] random.randint(-100, 100)y[i][j] random.randint(-100, 100)print(随机数组x)
print(x)
print(随机数组y)
print(y)# 等价于矩阵相减此处使用for循环
z np.zeros(shape(4, 4))
for i in range(0, 4):for j in range(0, 4):z[i][j] x[i][j] - y[i][j]
print(x - y )
print(z)T3
按照实验要求本题测试应该使用随机的矩阵code 3实现。但是逆矩阵各数值可能是无理数且由于浮点数的精度问题导致求出的逆矩阵各数值只是“近似”进而导致验证出现问题求解正确的逆矩阵被判定为求解错误. 故使使用一个相对特殊的情况进行求解code 3-1实现 Code 3
随机输入一个矩阵求它的逆矩阵并验证
遇到精度问题import randomimport numpy as npline random.randint(2, 10)
row line # 方阵才有逆
x np.random.randint(-100, 100, (line, row))
按照实验要求应该使用由随机数生成的矩阵
但是由于浮点数的精度问题且逆矩阵各数值可能是无理数
所以导致求出的逆矩阵各数值只是“近似”
进而导致验证出现问题print(原矩阵)
print(x)inv np.matrix(np.linalg.inv(x))
print(原矩阵的逆)
print(inv)res np.matrix(x) * inv
print(res)
Code 3-1
随机输入一个矩阵求它的逆矩阵并验证import numpy as npprint(请输入方阵大小)
size int(input())
s
irr 0for i in range(0, int(size)):s s input()mat np.zeros(shape(size, size))for i in range(0, len(s)):mat[int(irr / size)][irr % size] s[irr]irr irr 1inv np.matrix(np.linalg.inv(mat))res mat * inv
print(inv)
print(res)T4 猜数字游戏随机生成一个数x(1x10000),玩家每次输入一个数y
如果y大于或小于x则给出相应提示如yx则表示数字猜对了。import randomx random.randint(1, 10000)def check(flag):if int(flag) int(x):bigger()return Falseelif int(flag) int(x):smaller()return Falseelse:print(Congratulations!)return Truedef bigger():print(too big)def smaller():print(too small)while True:y input()if check(y):exit(0)五、实验体会
查询资料显示Python中使用双精度浮点数来存储小数8字节64位存储空间分配了52位来存储浮点数的有效数字11位存储指数1位存储正负号本质上是二进制表示的科学计数法舍入round的规则为“0 舍 1 入”。 如果需要更高精度可以使用类型Decimal并使用decimal.Decimal() 来存储精确的数字。或者使用Fraction模块来表示分数进行运算。