根据题目意思有:
0<a-x-y<a → x+y<a (1)
0<x<a (2)
0<y<a (3)
其图示如下,程序:
import matplotlib.pyplot as plt
import numpy as np
# 绳子的长度为A
A = 1
# x1
x1 = np.arange(A, 0, -0.01)
# y1
y1 = np.arange(0, A, 0.01)
# x2
x2 = np.arange(A/2, 0, -0.01)
# y2
y2 = np.arange(0, A/2, 0.01)
# x1+y1=A直线
plt.plot(x1, y1)
# x2+y2=A直线
plt.plot(x2, y2, color='red', linestyle='--')
# 阴影
plt.fill_between(x1, y1, 0, facecolor='pink')
# 显示坐标轴名称
plt.xlabel('x')
plt.ylabel('y')
# 设置坐标轴区间
plt.xlim((0,A))
plt.ylim((0,A))
# 显示图例
plt.title('x+y=A(A='+str(A)+')')
# 带网格的图
plt.grid()
plt.show()
根据三角形三条边的关系,需要同时满足如下三个条件:
x+y>a-x-y (4)
x+(a-x-y)>y (5)
y+(a-x-y)>x (6)
可以推得:
x+y>a/2 (7)
0<y<a/2 (8)
0<x<a/2 (9)
import matplotlib.pyplot as plt
import numpy as np
# 绳子的长度为A
A = 1
# x1
x1 = np.arange(A, 0, -0.01)
# y1
y1 = np.arange(0, A, 0.01)
# x2
x2 = np.arange(A/2, 0, -0.01)
# y2
y2 = np.arange(0, A/2, 0.01)
# line2
line2 = A/2
# x1+y1=A直线
plt.plot(x1, y1)
# x2+y2=A/2直线
plt.plot(x2, y2, color='red', linestyle='--')
plt.text(0.4,
0.1, #文字的起始位置
'x+y>A/2',
fontsize=9,
verticalalignment="top",
horizontalalignment="right")
# y=A/2直线
plt.vlines(x=line2, ymin=0, ymax=1, color='red', linestyle='--')
plt.annotate(r'y<A/2', #text和箭头一起的文字
xy=(A-0.05,A/2), #xy箭头起始位置
xytext=(A-0.1,A/2+0.05), #xytext文字起始位置
#textcoords='offset points',
fontsize=9,
arrowprops=dict(arrowstyle="->",connectionstyle="arc3")) #arrowprops箭头样式
# x=A/2直线
plt.hlines(y=line2, xmin=0, xmax=1, color='red', linestyle='--')
plt.text(A/2,
A, #文字的起始位置
'x<A/2',
fontsize=9,
verticalalignment="top",
horizontalalignment="right")
# 阴影
plt.fill_between(x2, #曲线x坐标
A/2-x2, #覆盖的下限,第一函数的y
A/2, #覆盖的上限,第2个函数的y
#where=x2+y2<A/2, #垂直方向上, bool,horizontal regions
facecolor='dodgerblue',
alpha=60)
# 显示坐标轴名称
plt.xlabel('x')
plt.ylabel('y')
# 设置坐标轴区间
plt.xlim((0,A))
plt.ylim((0,A))
# 显示图例
plt.title('x+y=A(A='+str(A)+')')
# 带网格的图
plt.grid()
plt.show()
所求蓝色阴影面积就是满足题目要求的区域,即S_蓝=1/4 S_红=1/2×A/2×A/2,其概率是1/4。