Merge branch 'random-fix'

This commit is contained in:
Mark McGranaghan 2015-09-05 10:19:54 -07:00
commit 16b92966bc
7 changed files with 21 additions and 11 deletions

View File

@ -47,4 +47,8 @@ func main() {
fmt.Print(r2.Intn(100), ",") fmt.Print(r2.Intn(100), ",")
fmt.Print(r2.Intn(100)) fmt.Print(r2.Intn(100))
fmt.Println() fmt.Println()
s3 := rand.NewSource(42)
r3 := rand.New(s3)
fmt.Print(r3.Intn(100), ",")
fmt.Print(r3.Intn(100))
} }

View File

@ -1,2 +1,2 @@
6ce1f98d3c22ee8bf02c41b393361d6cd5fff23a 8e97de760147b061dd09939db294c892211b6b80
TZElZIwNU1 ZdFpbahgC1

View File

@ -2,6 +2,7 @@ $ go run random-numbers.go
81,87 81,87
0.6645600532184904 0.6645600532184904
7.123187485356329,8.434115364335547 7.123187485356329,8.434115364335547
0,28
5,87 5,87
5,87 5,87

View File

@ -24,8 +24,8 @@ func main() {
// Tickers can be stopped like timers. Once a ticker // Tickers can be stopped like timers. Once a ticker
// is stopped it won't receive any more values on its // is stopped it won't receive any more values on its
// channel. We'll stop ours after 1500ms. // channel. We'll stop ours after 1600ms.
time.Sleep(time.Millisecond * 1500) time.Sleep(time.Millisecond * 1600)
ticker.Stop() ticker.Stop()
fmt.Println("Ticker stopped") fmt.Println("Ticker stopped")
} }

View File

@ -1,2 +1,2 @@
39781500e9ccbd39282e2dce5cb8003715bfe78a 5d97b8ebdf36a65f0e92040bae0097f60b79e1ed
U0PO7ZZU3l MO3ndiv5qR

View File

@ -41,7 +41,7 @@ generation.</p>
</td> </td>
<td class="code leading"> <td class="code leading">
<a href="http://play.golang.org/p/TZElZIwNU1"><img title="Run code" src="play.png" class="run" /></a> <a href="http://play.golang.org/p/ZdFpbahgC1"><img title="Run code" src="play.png" class="run" /></a>
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span> <div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
</pre></div> </pre></div>
@ -124,7 +124,7 @@ other ranges, for example <code>5.0 &lt;= f' &lt; 10.0</code>.</p>
<td class="docs"> <td class="docs">
<p>The default number generator is deterministic, so it&rsquo;ll <p>The default number generator is deterministic, so it&rsquo;ll
produce the same sequence of numbers each time by default. produce the same sequence of numbers each time by default.
To make it non-deterministic, give it a seed that changes. To produce varying sequences, give it a seed that changes.
Note that this is not safe to use for random numbers you Note that this is not safe to use for random numbers you
intend to be secret, use <code>crypto/rand</code> for those.</p> intend to be secret, use <code>crypto/rand</code> for those.</p>
@ -167,6 +167,10 @@ produces the same sequence of random numbers.</p>
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Print</span><span class="p">(</span><span class="nx">r2</span><span class="p">.</span><span class="nx">Intn</span><span class="p">(</span><span class="mi">100</span><span class="p">),</span> <span class="s">&quot;,&quot;</span><span class="p">)</span> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Print</span><span class="p">(</span><span class="nx">r2</span><span class="p">.</span><span class="nx">Intn</span><span class="p">(</span><span class="mi">100</span><span class="p">),</span> <span class="s">&quot;,&quot;</span><span class="p">)</span>
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Print</span><span class="p">(</span><span class="nx">r2</span><span class="p">.</span><span class="nx">Intn</span><span class="p">(</span><span class="mi">100</span><span class="p">))</span> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Print</span><span class="p">(</span><span class="nx">r2</span><span class="p">.</span><span class="nx">Intn</span><span class="p">(</span><span class="mi">100</span><span class="p">))</span>
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">()</span> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">()</span>
<span class="nx">s3</span> <span class="o">:=</span> <span class="nx">rand</span><span class="p">.</span><span class="nx">NewSource</span><span class="p">(</span><span class="mi">42</span><span class="p">)</span>
<span class="nx">r3</span> <span class="o">:=</span> <span class="nx">rand</span><span class="p">.</span><span class="nx">New</span><span class="p">(</span><span class="nx">s3</span><span class="p">)</span>
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Print</span><span class="p">(</span><span class="nx">r3</span><span class="p">.</span><span class="nx">Intn</span><span class="p">(</span><span class="mi">100</span><span class="p">),</span> <span class="s">&quot;,&quot;</span><span class="p">)</span>
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Print</span><span class="p">(</span><span class="nx">r3</span><span class="p">.</span><span class="nx">Intn</span><span class="p">(</span><span class="mi">100</span><span class="p">))</span>
<span class="p">}</span> <span class="p">}</span>
</pre></div> </pre></div>
@ -187,6 +191,7 @@ produces the same sequence of random numbers.</p>
<span class="go">81,87</span> <span class="go">81,87</span>
<span class="go">0.6645600532184904</span> <span class="go">0.6645600532184904</span>
<span class="go">7.123187485356329,8.434115364335547</span> <span class="go">7.123187485356329,8.434115364335547</span>
<span class="go">0,28</span>
<span class="go">5,87</span> <span class="go">5,87</span>
<span class="go">5,87</span> <span class="go">5,87</span>
</pre></div> </pre></div>

View File

@ -43,7 +43,7 @@ periodically until we stop it.</p>
</td> </td>
<td class="code leading"> <td class="code leading">
<a href="http://play.golang.org/p/U0PO7ZZU3l"><img title="Run code" src="play.png" class="run" /></a> <a href="http://play.golang.org/p/MO3ndiv5qR"><img title="Run code" src="play.png" class="run" /></a>
<div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span> <div class="highlight"><pre><span class="kn">package</span> <span class="nx">main</span>
</pre></div> </pre></div>
@ -100,12 +100,12 @@ the values as they arrive every 500ms.</p>
<td class="docs"> <td class="docs">
<p>Tickers can be stopped like timers. Once a ticker <p>Tickers can be stopped like timers. Once a ticker
is stopped it won&rsquo;t receive any more values on its is stopped it won&rsquo;t receive any more values on its
channel. We&rsquo;ll stop ours after 1500ms.</p> channel. We&rsquo;ll stop ours after 1600ms.</p>
</td> </td>
<td class="code"> <td class="code">
<div class="highlight"><pre> <span class="nx">time</span><span class="p">.</span><span class="nx">Sleep</span><span class="p">(</span><span class="nx">time</span><span class="p">.</span><span class="nx">Millisecond</span> <span class="o">*</span> <span class="mi">1500</span><span class="p">)</span> <div class="highlight"><pre> <span class="nx">time</span><span class="p">.</span><span class="nx">Sleep</span><span class="p">(</span><span class="nx">time</span><span class="p">.</span><span class="nx">Millisecond</span> <span class="o">*</span> <span class="mi">1600</span><span class="p">)</span>
<span class="nx">ticker</span><span class="p">.</span><span class="nx">Stop</span><span class="p">()</span> <span class="nx">ticker</span><span class="p">.</span><span class="nx">Stop</span><span class="p">()</span>
<span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">&quot;Ticker stopped&quot;</span><span class="p">)</span> <span class="nx">fmt</span><span class="p">.</span><span class="nx">Println</span><span class="p">(</span><span class="s">&quot;Ticker stopped&quot;</span><span class="p">)</span>
<span class="p">}</span> <span class="p">}</span>