这个程序看不懂算法
import numpy as npimport matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
from tqdm import tqdm
# wrapper class for an interval
# readability is more important than efficiency, so I won't use many tricks
class Interval:
# [@left, @right)
def __init__(self, left, right):
self.left = left
self.right = right
# whether a point is in this interval
def contain(self, x):
return self.left <= x < self.right
# length of this interval
def size(self):
return self.right - self.left
# domain of the square wave, [0, 2)
DOMAIN = Interval(0.0, 2.0)
# square wave function
def square_wave(x):
if 0.5 < x < 1.5:
return 1
return 0
# get @n samples randomly from the square wave
def sample(n):
samples = []
for i in range(0, n):
x = np.random.uniform(DOMAIN.left, DOMAIN.right)
y = square_wave(x)
samples.append([x, y])
return samples