Skip to content

Generators #57

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 32 commits into from
Jun 6, 2020
Merged
Show file tree
Hide file tree
Changes from 25 commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
94fa272
initial translate
msisaifu May 9, 2020
0588021
translate solution
msisaifu May 9, 2020
57df27a
translate task
msisaifu May 9, 2020
12516dd
Update 1-js/12-generators-iterators/1-generators/01-pseudo-random-gen…
msisaifu May 10, 2020
761ac23
Update 1-js/12-generators-iterators/1-generators/01-pseudo-random-gen…
msisaifu May 10, 2020
0847ca5
Update 1-js/12-generators-iterators/1-generators/01-pseudo-random-gen…
msisaifu May 10, 2020
7a3be5e
Update 1-js/12-generators-iterators/1-generators/01-pseudo-random-gen…
msisaifu May 10, 2020
e57fead
Update 1-js/12-generators-iterators/1-generators/01-pseudo-random-gen…
msisaifu May 10, 2020
104ac43
Update 1-js/12-generators-iterators/1-generators/article.md
msisaifu May 10, 2020
63a7b31
Update 1-js/12-generators-iterators/1-generators/article.md
msisaifu May 10, 2020
6d4143b
Update 1-js/12-generators-iterators/1-generators/article.md
msisaifu May 10, 2020
f497c8b
Update 1-js/12-generators-iterators/1-generators/article.md
msisaifu May 10, 2020
98213d0
Update 1-js/12-generators-iterators/1-generators/article.md
msisaifu May 10, 2020
82074a3
Update 1-js/12-generators-iterators/1-generators/article.md
msisaifu May 10, 2020
83eb7b0
Update 1-js/12-generators-iterators/1-generators/article.md
msisaifu May 10, 2020
1199a7c
Update 1-js/12-generators-iterators/1-generators/article.md
msisaifu May 10, 2020
c175196
Update 1-js/12-generators-iterators/1-generators/article.md
msisaifu May 10, 2020
cfde4ec
Update 1-js/12-generators-iterators/1-generators/article.md
msisaifu May 10, 2020
26fe5c6
Update 1-js/12-generators-iterators/1-generators/article.md
msisaifu May 10, 2020
fff3e51
Update 1-js/12-generators-iterators/1-generators/article.md
msisaifu May 10, 2020
63cc866
Update 1-js/12-generators-iterators/1-generators/article.md
msisaifu May 10, 2020
b69e23b
Update 1-js/12-generators-iterators/1-generators/article.md
msisaifu May 10, 2020
40962a3
Update 1-js/12-generators-iterators/1-generators/article.md
msisaifu May 10, 2020
172c2b1
Merge branch 'master' into Generators
msisaifu May 10, 2020
cec8a4a
update
msisaifu May 10, 2020
d6e3723
Update 1-js/12-generators-iterators/1-generators/article.md
msisaifu Jun 6, 2020
09cc415
Update 1-js/12-generators-iterators/1-generators/article.md
msisaifu Jun 6, 2020
1ea17ee
Update 1-js/12-generators-iterators/1-generators/article.md
msisaifu Jun 6, 2020
f8cdbc5
Update 1-js/12-generators-iterators/1-generators/article.md
msisaifu Jun 6, 2020
c1b7cac
Update 1-js/12-generators-iterators/1-generators/article.md
msisaifu Jun 6, 2020
98783f8
Update 1-js/12-generators-iterators/1-generators/01-pseudo-random-gen…
msisaifu Jun 6, 2020
4a77b3a
Update 1-js/12-generators-iterators/1-generators/01-pseudo-random-gen…
msisaifu Jun 6, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ alert(generator.next().value); // 282475249
alert(generator.next().value); // 1622650073
```

Please note, the same can be done with a regular function, like this:
দয়া করে মনে রাখুন, আমরা নিম্নোক্ত রেগুলার ফাংশনের মাধ্যমেও একই কাজ করতে পারিঃ

```js run
function pseudoRandom(seed) {
Expand All @@ -35,4 +35,4 @@ alert(generator()); // 282475249
alert(generator()); // 1622650073
```

That also works. But then we lose ability to iterate with `for..of` and to use generator composition, that may be useful elsewhere.
এটিও কাজ করে। কিন্তু এ জন্য জেনারেট কম্পোজিশনে আমরা `for..of` এর মাধ্যমে ইটারেট করতে পারব না, এটি অন্য কোথাও ব্যবহারযোগ্য হতে পারে।
Original file line number Diff line number Diff line change
@@ -1,29 +1,30 @@

# Pseudo-random generator
# সুডো-র‍্যান্ডম জেনারেটর

There are many areas where we need random data.
এমন অনেক ক্ষেত্র আছে যেখানে আমাদের র‍্যান্ডম ডাটা জেনারেট করা লাগে।

One of them is testing. We may need random data: text, numbers, etc. to test things out well.
এর মধ্যে একটি হল টেস্টিং। টেস্ট করার জন্য আমাদের প্রয়োজন হতে পারে র‍্যান্ডম ডাটাঃ টেক্সট, নাম্বার ইত্যাদি।

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.
জাভাস্ক্রিপ্টে আমরা `Math.random()` ব্যবহার করতে পারি। কিন্ত যদি আমরা কোন ভুল করে ফেলি এবং টেস্ট আবার একই ডাটা দিয়ে রিপিট করতে চাই।

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.
এজন্য তথাকথিত "সীডেড সুডো-র‍্যান্ডম জেনারেটর" ব্যবহার করা হয়। এইগুলো প্রথম ভ্যালুতে একটি "সীড" নেয়, এবং তারপর একটি সূত্র ব্যবহার করে পরবর্তিটি জেনারেট করে যাতে করে একই সীড একই ক্রমধারা তৈরি করতে পারে, আর এতে করে পুরো প্রবাহটি খুব সহজে পুনরায় গঠন করা যায়। এর জন্য আমাদের কেবল কোন সীডটি পুনরায় করতে হবে সেটা মনে রাখলেই চলবে।

An example of such formula, that generates somewhat uniformly distributed values:
এ জাতীয় সূত্রের একটি উদাহরণ, যেটা কিনা কিছুটা সমানভাবে ডিস্ট্রিবিউটেড মান জেনারেট করেঃ

```
next = previous * 16807 % 2147483647
```

If we use `1` as the seed, the values will be:
যদি আমরা সিড হিসেবে `1` ব্যবহার করি, মানগুলো হবেঃ
1. `16807`
2. `282475249`
3. `1622650073`
4. ...and so on...
4. ...এভাবে চলতে থাকবে...

The task is to create a generator function `pseudoRandom(seed)` that takes `seed` and creates the generator with this formula.
আপনার টাস্কটি হল একট জেনারেটর ফাংশন `pseudoRandom(seed)` তৈরি করুন যা একটি `seed` নেয়
এবং জেনারেটরটি উপরের ফর্মুলা অনুযায়ী তৈরি করুন।

Usage example:
উদাহরণ:

```js
let generator = pseudoRandom(1);
Expand Down
Loading