Skip to content

Commit 58ea24e

Browse files
authored
Merge pull request #201 from otmon76/1.12.1
Generators
2 parents 9fbbf18 + e836f44 commit 58ea24e

File tree

7 files changed

+237
-237
lines changed

7 files changed

+237
-237
lines changed
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
function* pseudoRandom(seed) {
2-
let value = seed;
1+
function* pseudonáhodné(semínko) {
2+
let hodnota = semínko;
33

44
while(true) {
5-
value = value * 16807 % 2147483647
6-
yield value;
5+
hodnota = hodnota * 16807 % 2147483647
6+
yield hodnota;
77
}
88

99
};

1-js/12-generators-iterators/1-generators/01-pseudo-random-generator/_js.view/test.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
1-
describe("pseudoRandom", function() {
1+
describe("pseudonáhodné", function() {
22

3-
it("follows the formula", function() {
4-
let generator = pseudoRandom(1);
3+
it("dodržuje vzorec", function() {
4+
let generator = pseudonáhodné(1);
55

66
assert.equal(generator.next().value, 16807);
77
assert.equal(generator.next().value, 282475249);
88
assert.equal(generator.next().value, 1622650073);
99
});
1010

1111

12-
it("returns same value for the same seed", function() {
13-
let generator1 = pseudoRandom(123);
14-
let generator2 = pseudoRandom(123);
12+
it("pro stejné semínko vrací stejné hodnoty", function() {
13+
let generator1 = pseudonáhodné(123);
14+
let generator2 = pseudonáhodné(123);
1515

1616
assert.deepEqual(generator1.next(), generator2.next());
1717
assert.deepEqual(generator1.next(), generator2.next());
Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,38 @@
11
```js run demo
2-
function* pseudoRandom(seed) {
3-
let value = seed;
2+
function* pseudonáhodné(semínko) {
3+
let hodnota = semínko;
44

55
while(true) {
6-
value = value * 16807 % 2147483647;
7-
yield value;
6+
hodnota = hodnota * 16807 % 2147483647;
7+
yield hodnota;
88
}
99

1010
};
1111

12-
let generator = pseudoRandom(1);
12+
let generátor = pseudonáhodné(1);
1313

14-
alert(generator.next().value); // 16807
15-
alert(generator.next().value); // 282475249
16-
alert(generator.next().value); // 1622650073
14+
alert(generátor.next().value); // 16807
15+
alert(generátor.next().value); // 282475249
16+
alert(generátor.next().value); // 1622650073
1717
```
1818

19-
Please note, the same can be done with a regular function, like this:
19+
Prosíme všimněte si, že totéž se dá provést i s obyčejnou funkcí, například:
2020

2121
```js run
22-
function pseudoRandom(seed) {
23-
let value = seed;
22+
function pseudonáhodné(semínko) {
23+
let hodnota = semínko;
2424

2525
return function() {
26-
value = value * 16807 % 2147483647;
27-
return value;
26+
hodnota = hodnota * 16807 % 2147483647;
27+
return hodnota;
2828
}
2929
}
3030

31-
let generator = pseudoRandom(1);
31+
let generátor = pseudonáhodné(1);
3232

33-
alert(generator()); // 16807
34-
alert(generator()); // 282475249
35-
alert(generator()); // 1622650073
33+
alert(generátor()); // 16807
34+
alert(generátor()); // 282475249
35+
alert(generátor()); // 1622650073
3636
```
3737

38-
That also works. But then we lose ability to iterate with `for..of` and to use generator composition, that may be useful elsewhere.
38+
To funguje také. Ale pak ztratíme možnost iterovat pomocí `for..of` a používat skládání generátorů, které může být užitečné jinde.
Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,34 @@
11

2-
# Pseudo-random generator
2+
# Generátor pseudonáhodných čísel
33

4-
There are many areas where we need random data.
4+
Je mnoho oblastí, v nichž potřebujeme náhodná data.
55

6-
One of them is testing. We may need random data: text, numbers, etc. to test things out well.
6+
Jedna z nich je testování. Můžeme potřebovat náhodná data: texty, čísla atd., abychom vše pečlivě otestovali.
77

8-
In JavaScript, we could use `Math.random()`. But if something goes wrong, we'd like to be able to repeat the test, using exactly the same data.
8+
V JavaScriptu můžeme použít `Math.random()`. Pokud se však něco pokazí, rádi bychom měli možnost tento test zopakovat s přesně stejnými daty.
99

10-
For that, so called "seeded pseudo-random generators" are used. They take a "seed", the first value, and then generate the next ones using a formula so that the same seed yields the same sequence, and hence the whole flow is easily reproducible. We only need to remember the seed to repeat it.
10+
K tomu se používají tzv. „generátory pseudonáhodných čísel se semínkem". Vezmou „semínko“, první hodnotu, a pak generují další hodnoty podle nějakého vzorce tak, že stejné semínko vydá stejnou posloupnost, takže celý běh je snadno reprodukovatelný. Abychom jej zopakovali, stačí nám pamatovat si semínko.
1111

12-
An example of such formula, that generates somewhat uniformly distributed values:
12+
Příklad takového vzorce, který generuje zhruba rovnoměrně rozložené hodnoty:
1313

1414
```
15-
next = previous * 16807 % 2147483647
15+
další = předchozí * 16807 % 2147483647
1616
```
1717

18-
If we use `1` as the seed, the values will be:
18+
Pokud jako semínko použijeme `1`, hodnoty budou:
1919
1. `16807`
2020
2. `282475249`
2121
3. `1622650073`
22-
4. ...and so on...
22+
4. ...a tak dále...
2323

24-
The task is to create a generator function `pseudoRandom(seed)` that takes `seed` and creates the generator with this formula.
24+
Úkolem je vytvořit generátorovou funkci `pseudonáhodné(semínko)`, která vezme `semínko` a vytvoří generátor s tímto vzorcem.
2525

26-
Usage example:
26+
Příklad použití:
2727

2828
```js
29-
let generator = pseudoRandom(1);
29+
let generátor = pseudonáhodné(1);
3030

31-
alert(generator.next().value); // 16807
32-
alert(generator.next().value); // 282475249
33-
alert(generator.next().value); // 1622650073
31+
alert(generátor.next().value); // 16807
32+
alert(generátor.next().value); // 282475249
33+
alert(generátor.next().value); // 1622650073
3434
```

0 commit comments

Comments
 (0)