[Python-checkins] cpython (3.6): Extend and improve the examples for the random module
raymond.hettinger
python-checkins at python.org
Mon Nov 21 05:00:12 EST 2016
https://hg.python.org/cpython/rev/223967b49e49
changeset: 105272:223967b49e49
branch: 3.6
parent: 105270:2d0ce3f4dfbd
user: Raymond Hettinger <python at rcn.com>
date: Mon Nov 21 01:59:39 2016 -0800
summary:
Extend and improve the examples for the random module
files:
Doc/library/random.rst | 34 +++++++++++++++++++++++++----
1 files changed, 29 insertions(+), 5 deletions(-)
diff --git a/Doc/library/random.rst b/Doc/library/random.rst
--- a/Doc/library/random.rst
+++ b/Doc/library/random.rst
@@ -345,8 +345,8 @@
>>> randrange(0, 101, 2) # Even integer from 0 to 100 inclusive
26
- >>> choice('abcdefghij') # Single random element from a sequence
- 'c'
+ >>> choice(['win', 'lose', 'draw']) # Single random element from a sequence
+ 'draw'
>>> deck = 'ace two three four'.split()
>>> shuffle(deck) # Shuffle a list
@@ -370,8 +370,9 @@
>>> print(seen.count('tens') / 20)
0.15
- # Estimate the probability of getting 5 or more heads from 7 spins
- # of a biased coin that settles on heads 60% of the time.
+ # Estimate the probability of getting 5 or more heads
+ # from 7 spins of a biased coin that settles on heads
+ # 60% of the time.
>>> n = 10000
>>> cw = [0.60, 1.00]
>>> sum(choices('HT', cum_weights=cw, k=7).count('H') >= 5 for i in range(n)) / n
@@ -416,4 +417,27 @@
print(f'{n} label reshufflings produced only {count} instances with a difference')
print(f'at least as extreme as the observed difference of {observed_diff:.1f}.')
print(f'The one-sided p-value of {count / n:.4f} leads us to reject the null')
- print(f'hypothesis that the observed difference occurred due to chance.')
+ print(f'hypothesis that there is no difference between the drug and the placebo.')
+
+Simulation of arrival times and service deliveries in a single server queue::
+
+ from random import gauss, expovariate
+
+ average_arrival_interval = 5.6
+ average_service_time = 5.0
+ stdev_service_time = 0.5
+
+ num_waiting = 0
+ arrival = service_end = 0.0
+ for i in range(10000):
+ num_waiting += 1
+ arrival += expovariate(1.0 / average_arrival_interval)
+ print(f'{arrival:6.1f} arrived')
+
+ while arrival > service_end:
+ num_waiting -= 1
+ service_start = service_end if num_waiting else arrival
+ service_time = gauss(average_service_time, stdev_service_time)
+ service_end = service_start + service_time
+ print(f'\t\t{service_start:.1f} to {service_end:.1f} serviced')
+
--
Repository URL: https://hg.python.org/cpython
More information about the Python-checkins
mailing list