Update page 'Day 7 Homework'
@@ -50,6 +50,53 @@ From the histogram shown above, we can say that jitter is expected to be more fl
|
||||
|
||||

|
||||
|
||||
```
|
||||
import numpy as np
|
||||
|
||||
# Durations to measure in seconds
|
||||
durations = [0.01, 0.1, 1.0]
|
||||
|
||||
# Number of repetitions
|
||||
num_repetitions = 100
|
||||
|
||||
# Lists to store jitter and duration for each measurement
|
||||
jitter = []
|
||||
duration = []
|
||||
|
||||
# Function to measure jitter
|
||||
def measure_jitter(duration):
|
||||
start_time = time.perf_counter_ns()
|
||||
time.sleep(duration)
|
||||
end_time = time.perf_counter_ns()
|
||||
return end_time - start_time
|
||||
|
||||
# Measure jitter for each duration and repeat for num_repetitions times
|
||||
for dur in durations:
|
||||
for _ in range(num_repetitions):
|
||||
jitter.append(measure_jitter(dur))
|
||||
duration.append(dur)
|
||||
|
||||
# Convert lists to NumPy arrays
|
||||
jitter = np.array(jitter)
|
||||
duration = np.array(duration)
|
||||
|
||||
# Fit a polynomial curve of degree 2
|
||||
coeffs = np.polyfit(duration, jitter, 2)
|
||||
poly_func = np.poly1d(coeffs)
|
||||
|
||||
# Generate data points for the curve
|
||||
duration_range = np.linspace(min(duration), max(duration), 100)
|
||||
jitter_fit = poly_func(duration_range)
|
||||
|
||||
# Plot the measured data points and the polynomial curve
|
||||
plt.scatter(duration, jitter, color='b', alpha=0.5, label='Measured Data')
|
||||
plt.plot(duration_range, jitter_fit, color='r', label='Polynomial Fit (Degree 2)')
|
||||
plt.xlabel('Sleep Duration (s)')
|
||||
plt.ylabel('Jitter (ns)')
|
||||
plt.title('Polynomial Relationship between Sleep Duration and Jitter')
|
||||
plt.legend()
|
||||
plt.show()
|
||||
```
|
||||
|
||||
**2. Create a dict with 1 million integer keys, each with 64 bytes of random values.**
|
||||
|
||||
|
||||
Reference in New Issue
Block a user