Skip to content

Commit 5e30740

Browse files
authored
Merge pull request #31 from IEEE-AlAzhar/master
Generators
2 parents 5f6eab9 + bed6110 commit 5e30740

3 files changed

Lines changed: 150 additions & 142 deletions

File tree

1-js/12-generators-iterators/1-generators/01-pseudo-random-generator/solution.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ alert(generator.next().value); // 282475249
1616
alert(generator.next().value); // 1622650073
1717
```
1818

19-
Please note, the same can be done with a regular function, like this:
19+
لاحظ أن هذا يمكن عمله بدالة عادية كهذا:
2020

2121
```js run
2222
function pseudoRandom(seed) {
@@ -35,4 +35,4 @@ alert(generator()); // 282475249
3535
alert(generator()); // 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+
وهذا يعمل أيضًا ولكن فقدنا الإمكانية أن نكرر باستخدام التكرار `for..of` واستخدام تكوين الـgenerator وهذا يمكن أن يكون مفيدًا فى مكان ما.

1-js/12-generators-iterators/1-generators/01-pseudo-random-generator/task.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,29 @@
11

2-
# Pseudo-random generator
2+
# الـgenerator الشبه عشوائي
33

4-
There are many areas where we need random data.
4+
هناك مواطن كثيرة حيث نحتاج إلى بيانات عشوائية.
55

6-
One of them is testing. We may need random data: text, numbers, etc. to test things out well.
6+
واحدة منها هي الإختبار (testing). يمكن أن نحتاج إلى بيانات عشوائية: نصوص أو أرقام وهكذا لاختبار الأشياء جيدّا.
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+
في الجافاسكريبت يمكننا استخدام `Math.random()` ولكن إذا حدث أى خطأ فإننا يمكن أن نود أن نعيد الإختبار باستخدام نفس البيانات.
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+
من أجل ذلك نستخدم ما يسمي "seeded pseudo-random generators" فهي تأخذ بذرة "seed" كمتغير أول وتقوم بإنشاء القيم التالية باستخدام معادلة ولذلك فإن البذرة نفسها تظل فى نفس التتابع ويمكن تكرار نفس الخطوات بسهولة. نحتاج فقط أن نتذكر الذرة لتكرارها.
1111

12-
An example of such formula, that generates somewhat uniformly distributed values:
12+
مثال على هذه المعادلة والتى تقوم بإنشاء قيم:
1313

1414
```
1515
next = previous * 16807 % 2147483647
1616
```
1717

18-
If we use `1` as the seed, the values will be:
18+
إذا استخدمنا `1` كبذرة فإن القيم ستكون:
1919
1. `16807`
2020
2. `282475249`
2121
3. `1622650073`
22-
4. ...and so on...
22+
4. ...وهكذا...
2323

24-
The task is to create a generator function `pseudoRandom(seed)` that takes `seed` and creates the generator with this formula.
24+
المهمة تقتضي أن تنشئ دالة generator `pseudoRandom(seed)` والتى تأخذ `seed` وتنشئ الـgenerator بهذه المعادلة.
2525

26-
Usage example:
26+
مثال على استخدامها:
2727

2828
```js
2929
let generator = pseudoRandom(1);

0 commit comments

Comments
 (0)