From 103f81c4bf47dad5505081fc6bbf34c770a70f69 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Sun, 24 Mar 2019 19:50:05 -0700 Subject: [PATCH] examples: Add shuffle examples to install list goodshuffle.py - even shuffle badshuffle.py - biased shuffle Signed-off-by: Keith Packard --- examples/Makefile | 4 +++- examples/badshuffle.py | 4 +++- examples/goodshuffle.py | 26 ++++++++++++++++++++++++++ 3 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 examples/goodshuffle.py diff --git a/examples/Makefile b/examples/Makefile index 48cffa4..369ebf5 100644 --- a/examples/Makefile +++ b/examples/Makefile @@ -26,7 +26,9 @@ EXAMPLES = \ morse.py \ snek-bsd.py \ snek.py \ - track-light.py + track-light.py \ + badshuffle.py \ + goodshuffle.py install: install -d "$(DESTDIR)$(EXAMPLEDIR)" diff --git a/examples/badshuffle.py b/examples/badshuffle.py index b306a7c..6a36d47 100644 --- a/examples/badshuffle.py +++ b/examples/badshuffle.py @@ -2,13 +2,15 @@ import random +random.seed(time.monotonic()) + # "Shuffle" a list, but *wrong*. narray = 16 a = [0] * narray h = [0] * narray -for _ in range(10000): +for _ in range(100000): for i in range(narray): a[i] = i for i in range(narray): diff --git a/examples/goodshuffle.py b/examples/goodshuffle.py new file mode 100644 index 0000000..3863188 --- /dev/null +++ b/examples/goodshuffle.py @@ -0,0 +1,26 @@ +#!/usr/bin/python3 + +import random + +random.seed(time.monotonic()) + +# "Shuffle" a list, but *wrong*. + +narray = 16 +a = [0] * narray +h = [0] * narray + +for _ in range(100000): + for i in range(narray): + a[i] = i + for i in range(narray): + j = i + random.randrange(narray - i) + tmp = a[j] + a[j] = a[i] + a[i] = tmp + for i in range(narray): + if a[i] == narray - 1: + h[i] += 1 + break + +print(h)