(data, nsamples, prng=None)
| 2 | |
| 3 | |
| 4 | def reservoir_sampling(data, nsamples, prng=None): |
| 5 | if prng is None: |
| 6 | prng = random |
| 7 | |
| 8 | result = [] |
| 9 | for i, entry in enumerate(data): |
| 10 | if i < nsamples: |
| 11 | result.append(entry) |
| 12 | else: |
| 13 | j = prng.randint(0, i) |
| 14 | if j < nsamples: |
| 15 | result[j] = entry |
| 16 | return result |
no test coverage detected