Computer programming has been, largely, an intuitive activity.

কম্পিউটার প্রোগ্রামিং মূলত একটি স্বজ্ঞাত কার্যকলাপ ছিল।


Programmers are taught to understand programming in operational terms, i.e., how a computer executes a program.

প্রোগ্রামারদের প্রোগ্রামিং-এর কার্যকরী দিকগুলো বুঝতে শেখানো হয়, অর্থাৎ, কীভাবে একটি কম্পিউটার একটি প্রোগ্রাম কার্যকর করে।


Such theories reduce the mental effort, and the amount of experimentation needed to design a product.

এই ধরনের তত্ত্ব মানসিক প্রচেষ্টা কমায়, এবং একটি পণ্য ডিজাইন করার জন্য প্রয়োজনীয় পরীক্ষানিরীক্ষার পরিমাণও হ্রাস করে।


They are as indispensable for their domains as calculus is for solving scientific and engineering problems.

তাদের ডোমেনের জন্য তারা ততটাই অপরিহার্য, যতটা ক্যালকুলাস বৈজ্ঞানিক এবং প্রকৌশল সমস্যা সমাধানে গুরুত্বপূর্ণ।


I am attracted to effective theories primarily because they save labor (for the human and the computer), and secondarily because they give us better assurance about the properties of programs.

আমি কার্যকরী তত্ত্বের প্রতি আকৃষ্ট হই প্রধানত কারণ তারা শ্রম বাঁচায় (মানুষ এবং কম্পিউটারের জন্য), এবং দ্বিতীয়ত কারণ তারা প্রোগ্রামগুলির বৈশিষ্ট্য সম্পর্কে আমাদের আরও ভাল নিশ্চয়তা দেয়।


The original inspiration to design a computer science course which illustrates the applications of effective theories in practice came from Elaine Rich and J Moore.

কম্পিউটার বিজ্ঞান কোর্সের নকশা করার মূল অনুপ্রেরণা, যা অনুশীলনে কার্যকরী তত্ত্বের প্রয়োগগুলি তুলে ধরে, এসেছিল ইলাইন রিচ এবং জে মুর-এর কাছ থেকে।


I prepared a set of notes and taught the course in the Spring and Fall of 2003.

আমি কিছু নোট প্রস্তুত করি এবং ২০০৩ সালের বসন্ত ও শরৎকালে এই কোর্সটি পড়িয়েছিলাম।


The choice of topics and the style of presentation are my own.

বিষয়বস্তু নির্বাচন এবং উপস্থাপনার শৈলী আমার নিজের।


I have made no effort to be comprehensive.

আমি বিস্তারিত করার কোনো চেষ্টা করিনি।


Greg Plaxton has used my original notes and made extensive revisions; I am grateful to him.

গ্রেগ প্লাক্সটন আমার মূল নোটগুলি ব্যবহার করেছেন এবং ব্যাপক সংশোধন করেছেন; আমি তার প্রতি কৃতজ্ঞ।


I am also grateful to the graduate teaching assistants, especially Thierry Joffrain, for helping me revise the notes.

নোটগুলি সংশোধন করতে সাহায্য করার জন্য আমি স্নাতকোত্তর শিক্ষক সহায়কদের প্রতিও কৃতজ্ঞ, বিশেষ করে থিয়েরি জোফ্রেইনের প্রতি।


অস্টিন, টেক্সাস


১ টেক্সট কম্প্রেশন


1.2 A Very Incomplete Introduction to Information Theory

১.২ তথ্য তত্ত্বের একটি অসম্পূর্ণ ভূমিকা


১.৩ হাফম্যান কোডিং


২ ত্রুটি সনাক্তকরণ এবং সংশোধন


৩ ক্রিপ্টোগ্রাফি


The Mariner 4 spacecraft sent photographs of Mars.

মেরিনার ৪ মহাকাশযানটি মঙ্গল গ্রহের ছবি পাঠিয়েছিল।


Each pixel encoded 64 possible levels of brightness.

প্রতিটি পিক্সেল ৬৪টি সম্ভাব্য উজ্জ্বলতার স্তরকে এনকোড করে।


The receiver converts the received string to its original form.

রিসিভার প্রাপ্ত স্ট্রিংটিকে তার আসল রূপে রূপান্তর করে।


For text strings, conversion to and from bit strings is straightforward.

টেক্সট স্ট্রিংগুলির জন্য, বিট স্ট্রিংগুলিতে রূপান্তর করা এবং তা থেকে রূপান্তর করা সহজ।


The image will appear grainy after being converted at the receiver.

রিসিভারে রূপান্তরিত হওয়ার পরে চিত্রটি শস্যযুক্ত দেখাবে।


We study the simple Reed-Muller code employed by the later Mariners.

আমরা পরবর্তী মেরিনারদের দ্বারা ব্যবহৃত সাধারণ রিড-মুলার কোডটি অধ্যয়ন করি।


Error correction capability is low with 8- bit codewords.

৮-বিট কোডওয়ার্ডের সাথে ত্রুটি সংশোধনের ক্ষমতা কম।


The Mariners employed 32-bit codewords, where the inter-word distance is 16.

মেরিনাররা ৩২-বিট কোডওয়ার্ড ব্যবহার করত, যেখানে আন্তঃ-শব্দ দূরত্ব ছিল ১৬।


Hadamard matrices have many pleasing properties.

হ্যাডামার্ড ম্যাট্রিক্সের অনেক আকর্ষণীয় বৈশিষ্ট্য রয়েছে।


The Hamming distance between any two distinct rows of Hn, n≥1, is 2n-1.

Hn, n≥1 এর যে কোনো দুটি ভিন্ন সারির মধ্যে হ্যামিং দূরত্ব হল 2n-1।


Secure communication has been important for at least 2,500 years.

নিরাপদ যোগাযোগ কমপক্ষে ২,৫০০ বছর ধরে গুরুত্বপূর্ণ।


Alice will encrypt the plaintext to create a ciphertext.

অ্যালিস একটি সাইফারটেক্সট তৈরি করতে প্লেনটেক্সট এনক্রিপ্ট করবে।


The goal of encryption and decryption is to make it hard for Eve to decrypt the ciphertext.

এনক্রিপশন এবং ডিক্রিপশনের লক্ষ্য হল ইভের জন্য সাইফারটেক্সট ডিক্রিপ্ট করা কঠিন করে তোলা।


When Alice and Bob share knowledge of the key, they are using a symmetric key system.

যখন অ্যালিস এবং বব কী-এর জ্ঞান ভাগ করে নেয়, তখন তারা একটি প্রতিসম কী সিস্টেম ব্যবহার করে।


Modern public key cryptography is asymmetric.

আধুনিক পাবলিক কী ক্রিপ্টোগ্রাফি অপ্রতিসম।


The communication medium is really not important.

যোগাযোগের মাধ্যমটি আসলে গুরুত্বপূর্ণ নয়।


Some of the earliest efforts simply scrambled the letters of the plaintext.

কিছু প্রাথমিক প্রচেষ্টা কেবল প্লেনটেক্সটের অক্ষরগুলিকে এলোমেলো করে।


Bob, the intended recipient, can decrypt only if he is given the scrambling sequence.

বব, উদ্দিষ্ট প্রাপক, শুধুমাত্র তখনই ডিক্রিপ্ট করতে পারে যদি তাকে স্ক্র্যাম্বলিং সিকোয়েন্স দেওয়া হয়।


A substitution cypher replaces a symbol by another symbol.

একটি প্রতিস্থাপন সাইফার একটি প্রতীককে অন্য প্রতীক দ্বারা প্রতিস্থাপন করে।


Julius Caesar used a very simple form of substitution.

জুলিয়াস সিজার প্রতিস্থাপনের একটি খুব সাধারণ রূপ ব্যবহার করতেন।


অ্যালগরিদমটি O(n) সময়ে চলে।


Lempel-Ziv coding does not require the frequencies to be known a priori.

লেম্পেল-জিভ কোডিংয়ের জন্য আগে থেকে ফ্রিকোয়েন্সি জানার প্রয়োজন হয় না।


The sender scans the text from left to right identifying certain strings.

প্রেরক বাম থেকে ডানে পাঠ্যটি স্ক্যান করে কিছু স্ট্রিং সনাক্ত করে।


The receiver recreates the string by looking up the word with index 3.

রিসিভার ইনডেক্স ৩ সহ শব্দটি দেখে স্ট্রিংটি পুনরায় তৈরি করে।


Lempel-Ziv coding is asymptotically optimal.

লেম্পেল-জিভ কোডিং অ্যাসিপটোটিকভাবে সর্বোত্তম।


In practice, the dictionary is limited to a fixed size, like 4096.

ব্যবহারিকভাবে, অভিধানটি একটি নির্দিষ্ট আকারে সীমাবদ্ধ, যেমন 4096।


The receiver can update the dictionary and recreate the text.

রিসিভার অভিধান আপডেট করতে এবং পাঠ্যটি পুনরায় তৈরি করতে পারে।


Many popular compression programs are based on some variant of the Lempel-Ziv algorithm.

অনেক জনপ্রিয় কম্প্রেশন প্রোগ্রাম লেম্পেল-জিভ অ্যালগরিদমের কিছু প্রকারের উপর ভিত্তি করে তৈরি।


We develop a data structure to implement the dictionary.

আমরা অভিধানটি বাস্তবায়নের জন্য একটি ডেটা স্ট্রাকচার তৈরি করি।


The root node has the word <> (empty string) and index 0 associated with it.

রুট নোডের সাথে শব্দ <> (খালি স্ট্রিং) এবং সূচক ০ যুক্ত আছে।


The receiver merely maintains an array D, where D(i) is the string of index i in the tree.

রিসিভার কেবল একটি অ্যারে D বজায় রাখে, যেখানে D(i) হল গাছের মধ্যে i সূচকের স্ট্রিং।


The essence of error correction and detection is captured.

ত্রুটি সংশোধন এবং সনাক্তকরণের সারমর্মটি ধরা হয়েছে।


We study the logical operator exclusive-or.

আমরা লজিক্যাল অপারেটর এক্সক্লুসিভ-অর নিয়ে আলোচনা করি।


The operator is written as ⊕ in these notes.

এই নোটগুলিতে অপারেটরটিকে ⊕ হিসাবে লেখা হয়।


Encoding true by 1 and false by 0, we get Table 2.2.

১ দ্বারা সত্য এবং ০ দ্বারা মিথ্যাকে এনকোড করে, আমরা টেবিল ২.২ পাই।


In all cases, we apply ⊕ to bit strings of equal lengths.

সব ক্ষেত্রে, আমরা সমান দৈর্ঘ্যের বিট স্ট্রিংগুলিতে ⊕ প্রয়োগ করি।


Exclusive-or of a set of 0s and 1s depends only on the number of 1s.

০ এবং ১ এর একটি সেটের এক্সক্লুসিভ-অর শুধুমাত্র ১ এর সংখ্যার উপর নির্ভর করে।


A nonempty set of words, W, is dependent if ˆ W = 0.

শব্দগুলির একটি অ-শূন্য সেট, W, নির্ভরশীল যদি ˆ W = 0 হয়।


Dependent sets are used in two applications later in these notes.

এই নোটগুলিতে পরে দুটি অ্যাপ্লিকেশনে নির্ভরশীল সেট ব্যবহার করা হয়।


The proof of the following observation is similar to the one above.

নিম্নলিখিত পর্যবেক্ষণের প্রমাণ উপরেরটির অনুরূপ।


Data compression is useful and necessary in a variety of applications.

বিভিন্ন অ্যাপ্লিকেশনে ডেটা কম্প্রেশন উপযোগী এবং প্রয়োজনীয়।


Compression reduces the number of bits to be transmitted, thus making the transmission process more efficient.

কম্প্রেশন প্রেরিতব্য বিটের সংখ্যা হ্রাস করে, যা সংক্রমণ প্রক্রিয়াটিকে আরও দক্ষ করে তোলে।


Storing a file in a compressed form typically requires fewer bits, thus utilizing storage resources more efficiently.

সংকুচিত আকারে একটি ফাইল সংরক্ষণ করতে সাধারণত কম বিটের প্রয়োজন হয়, যা আরও দক্ষতার সাথে স্টোরেজ সংস্থানগুলি ব্যবহার করে।


Data compression can be applied to any kind of data: text, image, audio and video.

ডেটা কম্প্রেশন যেকোনো ধরনের ডেটার ক্ষেত্রে প্রয়োগ করা যেতে পারে: পাঠ্য, চিত্র, অডিও এবং ভিডিও।


A 1-second video without compression takes around 20 megabytes.

কম্প্রেশন ছাড়া ১ সেকেন্ডের একটি ভিডিও প্রায় ২০ মেগাবাইট নেয়।


Real-time video transmission would be impossible without considerable compression.

যথেষ্ট কম্প্রেশন ছাড়া রিয়েল-টাইম ভিডিও ট্রান্সমিশন অসম্ভব হবে।


There are several new applications that generate data at prodigious rates.

এমন বেশ কয়েকটি নতুন অ্যাপ্লিকেশন রয়েছে যা বিশাল হারে ডেটা তৈরি করে।


Without compression there is no hope of storing such large files.

কম্প্রেশন ছাড়া এত বড় ফাইল সংরক্ষণের কোনো আশা নেই।


ক্ষতিপূর্ণ এবং ক্ষতিহীন কম্প্রেশন


Text transmissions are required to be lossless.

টেক্সট ট্রান্সমিশন অবশ্যই ক্ষতিহীন হতে হবে।


It will be a disaster to change even a single symbol in a text file.

একটি টেক্সট ফাইলে এমনকি একটি প্রতীক পরিবর্তন করাও বিপর্যয় ডেকে আনবে।


In this note, we study several lossless compression schemes for text files.

এই নোটে, আমরা টেক্সট ফাইলের জন্য বেশ কয়েকটি ক্ষতিহীন কম্প্রেশন স্কিম নিয়ে আলোচনা করব।


Error detection and correction can be applied to uncompressed as well as compressed strings.

ত্রুটি সনাক্তকরণ এবং সংশোধন অসংকুচিত এবং সংকুচিত উভয় স্ট্রিংগুলিতে প্রয়োগ করা যেতে পারে।


What is the typical level of compression?

সাধারণ কম্প্রেশন স্তর কত?


A repetitive lyric like “Old McDonald had a farm” can be compressed significantly.

“ওল্ড ম্যাকডোনাল্ড হ্যাড এ ফার্ম”-এর মতো একটি পুনরাবৃত্তিমূলক লিরিক উল্লেখযোগ্যভাবে সংকুচিত করা যেতে পারে।


I compressed a postscript file of 2,144,364 symbols to 688,529 symbols.

আমি ২,১৪৪,৩৬৪ টি প্রতীক সংবলিত একটি পোস্টস্ক্রিপ্ট ফাইলকে ৬৮৮,৫২৯ টি প্রতীকে সংকুচিত করেছি।


I found a web site where The Adventures of Tom Sawyer, by Mark Twain, is in uncompressed form.

আমি একটি ওয়েবসাইটে খুঁজে পেয়েছি যেখানে মার্ক টোয়েনের 'টম সয়ারের অ্যাডভেঞ্চারস' অসংকুচিত আকারে রয়েছে।


Take a random string of symbols over a given alphabet.

একটি নির্দিষ্ট বর্ণমালার উপর প্রতীকগুলির একটি এলোমেলো স্ট্রিং নিন।


If all symbols of the alphabet are equally probable, then you can’t do any compression at all.

যদি বর্ণমালার সমস্ত প্রতীক সমানভাবে সম্ভাব্য হয়, তবে আপনি কোনো কম্প্রেশন করতে পারবেন না।


In 1948, Claude E. Shannon published “A Mathematical Theory of Communication”.

১৯৪৮ সালে, ক্লড ই. শ্যানন “যোগাযোগের একটি গাণিতিক তত্ত্ব” প্রকাশ করেন।


The final state, where all piles are empty, is a losing state.

চূড়ান্ত অবস্থা, যেখানে সমস্ত স্তূপ খালি, একটি পরাজয় অবস্থা।


A player in a losing state will definitely lose provided his opponent makes the right moves.

একটি পরাজয় অবস্থায় থাকা খেলোয়াড় অবশ্যই হারবে যদি তার প্রতিপক্ষ সঠিক চালগুলি দেয়।


So, one of the players has a winning strategy based on the initial state.

সুতরাং, খেলোয়াড়দের মধ্যে একজনের প্রাথমিক অবস্থার উপর ভিত্তি করে একটি বিজয়ী কৌশল রয়েছে।


A player in a winning state has at least one move to transform the state to losing.

একটি বিজয়ী অবস্থায় থাকা খেলোয়াড়ের কাছে অবস্থাটিকে পরাজয়ে রূপান্তর করার জন্য কমপক্ষে একটি চাল আছে।


Let the exclusive-or of the remaining piles be s.

অবশিষ্ট স্তূপগুলির এক্সক্লুসিভ-অর ধরুন s।


Before the move, exclusive-or of all piles was s⊕p.

চাল দেওয়ার আগে, সমস্ত স্তূপের এক্সক্লুসিভ-অর ছিল s⊕p।


The winning move is to replace x by x⊕u.

বিজয়ী চালটি হল x কে x⊕u দ্বারা প্রতিস্থাপন করা।


The problem in secure communication is for a sender to send a message to a receiver so that no eavesdropper can read the message during transmission.

নিরাপদ যোগাযোগের সমস্যা হল প্রেরকের জন্য প্রাপকের কাছে একটি বার্তা পাঠানো যাতে কোনো দর্শক প্রেরণের সময় বার্তাটি পড়তে না পারে।


In most cases, the sender and the receiver agree on a transmission protocol.

বেশিরভাগ ক্ষেত্রে, প্রেরক এবং গ্রাহক একটি ট্রান্সমিশন প্রোটোকলে সম্মত হন।


The sender encrypts the message in such a fashion that only the receiver can decrypt it.

প্রেরক বার্তাটিকে এমনভাবে এনক্রিপ্ট করেন যাতে শুধুমাত্র গ্রাহকই এটি ডিক্রিপ্ট করতে পারে।


The sender first converts the message to be sent to a bit string.

প্রেরক প্রথমে পাঠানোর জন্য বার্তাটিকে একটি বিট স্ট্রিংয়ে রূপান্তর করেন।


This string is usually called the plaintext.

এই স্ট্রিংটিকে সাধারণত প্লেনটেক্সট বলা হয়।


For encryption, the sender and the receiver agree on a key k, which is a bit string of the same length as the block.

এনক্রিপশনের জন্য, প্রেরক এবং গ্রাহক একটি কী k-তে সম্মত হন, যা ব্লকের মতো একই দৈর্ঘ্যের একটি বিট স্ট্রিং।


The receiver, on receiving y, computes y⊕k which is (x⊕k)⊕k, i.e., x, the original message.

গ্রাহক, y পাওয়ার পরে, y⊕k গণনা করে যা (x⊕k)⊕k, অর্থাৎ, x, মূল বার্তা।


An eavesdropper can only see y which appears as pure gibberish.

একজন দর্শক শুধুমাত্র y দেখতে পারে যা সম্পূর্ণ অর্থহীন বলে মনে হয়।


This communication scheme is simple to program.

এই যোগাযোগ ব্যবস্থা প্রোগ্রাম করা সহজ।


Any party who has the key can decode the message.

যে কোনো পক্ষ যার কাছে চাবি আছে সে বার্তাটি ডিকোড করতে পারে।


অ্যালিসের কাছে দুটি ডেটা রয়েছে m0 এবং m1।


Bob requests one of these data from Alice.

বব অ্যালিসের কাছ থেকে এই ডেটাগুলির মধ্যে একটির জন্য অনুরোধ করে।


The restriction is that Alice should not know which data has been requested.

সীমাবদ্ধতা হল অ্যালিস জানতে পারবে না কোন ডেটার জন্য অনুরোধ করা হয়েছে।


Alice sends a public key to Bob which Bob uses to send her a secret.

অ্যালিস ববকে একটি পাবলিক কী পাঠায়, যা বব তাকে একটি গোপন বার্তা পাঠাতে ব্যবহার করে।


They can then employ the secret for further communications.

তারপর তারা আরও যোগাযোগের জন্য গোপন বার্তাটি ব্যবহার করতে পারে।


Here, pis a prime number; typically pis large.

এখানে, p একটি মৌলিক সংখ্যা; সাধারণত p বৃহৎ হয়।


Alice and Bob privately choose integers a and b which are less than p.

অ্যালিস এবং বব ব্যক্তিগতভাবে a এবং b পূর্ণসংখ্যাগুলি বেছে নেয় যা p-এর চেয়ে ছোট।


Alice sends g a mod p and Bob sends g b mod p.

অ্যালিস g a mod p পাঠায় এবং বব g b mod p পাঠায়।


They both have g ab mod p, and they settle on that as the secret key.

তাদের উভয়ের কাছে g ab mod p আছে, এবং তারা এটিকে গোপন চাবি হিসেবে স্থির করে।


উদাহরণস্বরূপ, ধরা যাক g = 3 এবং p = 17।


Verify that g is a 16 th primitive root of 1.

যাচাই করুন যে g, 1 এর ১৬তম আদিম মূল।


Let Alice choose a = 5 and Bob choose b = 9.

ধরা যাক অ্যালিস a = 5 এবং বব b = 9 নির্বাচন করে।


Each of them now knows 12 as the secret key.

তাদের প্রত্যেকে এখন ১২-কে গোপন চাবি হিসেবে জানে।


We have to choose a large prime number p and a positive integer g which is a (p−1) th root of 1.

আমাদের একটি বৃহৎ মৌলিক সংখ্যা p এবং একটি ধনাত্মক পূর্ণসংখ্যা g নির্বাচন করতে হবে যা 1 এর (p−1) তম মূল।


From the description of the protocol, we don’t really need that g be a (p−1) th root of 1.

প্রোটোকলের বর্ণনা থেকে, আমাদের সত্যিই g-কে (p−1) তম মূল হওয়ার প্রয়োজন নেই।


Such primes are known as safe or Sophie-Germain primes.

এই ধরনের মৌলিক সংখ্যাগুলিকে নিরাপদ বা সোফি-জার্মেইন মৌলিক সংখ্যা হিসাবে জানা যায়।


The task of Eve is to compute a or b given g, p, g a mod p and g b mod p.

ইভের কাজ হল g, p, g a mod p এবং g b mod p দেওয়া হলে a বা b গণনা করা।


This is known as the Discrete Logarithm Problem, for which there is no known efficient algorithm.

এটি ডিসক্রিট লগারিদম সমস্যা হিসাবে পরিচিত, যার জন্য কোনও পরিচিত দক্ষ অ্যালগরিদম নেই।


Observe that if Alice could compute Bob’s secret b efficiently, then so can Eve.

লক্ষ্য করুন যে যদি অ্যালিস ববের গোপন b দক্ষতার সাথে গণনা করতে পারে, তবে ইভও পারবে।


She pretends to be Alice to Bob and Bob to Alice.

সে ববের কাছে অ্যালিস এবং অ্যালিসের কাছে বব হওয়ার ভান করে।


There is no easy way to handle this problem.

এই সমস্যাটি মোকাবেলা করার সহজ কোনও উপায় নেই।


Each communication has to be authenticated.

প্রতিটি যোগাযোগের প্রমাণীকরণ করতে হবে।


A shepherd arrives at a river bank with a wolf, a goat and a cabbage.

একজন মেষপালক একটি নেকড়ে, একটি ছাগল এবং একটি বাঁধাকপি নিয়ে নদীর তীরে আসে।


Regular expressions and finite state machines are equivalent.

নিয়মিত অভিব্যক্তি এবং সসীম অবস্থা মেশিনগুলি সমতুল্য।


For each regular expression R there exists a finite state machine F such that the set of strings in R is the set of strings accepted by F.

প্রতিটি নিয়মিত অভিব্যক্তি R এর জন্য একটি সসীম অবস্থা মেশিন F বিদ্যমান যেমন R-এর স্ট্রিংগুলির সেট হল F দ্বারা গৃহীত স্ট্রিংগুলির সেট।


The machine has a start state S, an accepting state F and a rejecting state G.

মেশিনটির একটি শুরু অবস্থা S, একটি গ্রহণকারী অবস্থা F এবং একটি প্রত্যাখ্যানকারী অবস্থা G রয়েছে।


There is a transition from S to F labeled b, a transition from S to G labeled with all other symbols and a transition from F to G labeled with all symbols.

S থেকে F-এ b লেবেলযুক্ত একটি রূপান্তর আছে, S থেকে G-তে অন্য সমস্ত প্রতীক দিয়ে লেবেলযুক্ত একটি রূপান্তর এবং F থেকে G-তে সমস্ত প্রতীক দিয়ে লেবেলযুক্ত একটি রূপান্তর আছে।


মেশিনটি চিরকাল G-তে থাকে।


How do we construct a machine to recognize concatenation?

আমরা কিভাবে সংযোগ সনাক্ত করার জন্য একটি মেশিন তৈরি করব?


Suppose we have a machine that accepts a regular expression p and another machine that accepts q.

ধরুন আমাদের কাছে এমন একটি মেশিন আছে যা একটি নিয়মিত অভিব্যক্তি p গ্রহণ করে এবং অন্য একটি মেশিন যা q গ্রহণ করে।


Suppose p’s machine has a single accepting state.

ধরুন p-এর মেশিনের একটি একক গ্রহণকারী অবস্থা আছে।


Then we can merge the two machines by identifying the accepting state of the first machine with the start state of the second.

তাহলে আমরা প্রথম মেশিনের গ্রহণকারী অবস্থাকে দ্বিতীয়টির শুরু অবস্থার সাথে চিহ্নিত করে দুটি মেশিনকে একত্রিত করতে পারি।


পরবর্তীকালে, আসুন ক্লোজার বিবেচনা করি।


ধরুন আমাদের c* গ্রহণ করতে হবে।


The machine in Figure 4.23 does the job.

চিত্র 4.23-এর মেশিনটি কাজটি করে।


Now, let us put some of these constructions together and build a machine to recognize bc*.

এবার, আসুন এই নির্মাণগুলির কিছু একত্রিত করি এবং bc* সনাক্ত করার জন্য একটি মেশিন তৈরি করি।


মেশিনটি চিত্র 4.24-এ দেখানো হয়েছে।


You can see that it is a concatenation of a machine that accepts b and one that accepts c*.

আপনি দেখতে পাচ্ছেন যে এটি b গ্রহণ করে এমন একটি মেশিন এবং c* গ্রহণ করে এমন একটি মেশিনের সংযোগ।


Next, let us construct a machine that accepts bc* | cb*.

পরবর্তীকালে, আসুন এমন একটি মেশিন তৈরি করি যা bc* | cb* গ্রহণ করে।


Clearly, we can build machines for both bc* and cb* separately.

স্পষ্টতই, আমরা উভয় bc* এবং cb*-এর জন্য আলাদাভাবে মেশিন তৈরি করতে পারি।


Building their union is easy, because bc* and cb* start out with different symbols.

তাদের ইউনিয়ন তৈরি করা সহজ, কারণ bc* এবং cb* ভিন্ন প্রতীক দিয়ে শুরু হয়।


Regular expressions have a syntax in which a few characters are special constructs and the rest are "ordinary".

নিয়মিত অভিব্যক্তিগুলির একটি সিনট্যাক্স রয়েছে যেখানে কয়েকটি অক্ষর বিশেষ গঠন এবং বাকিগুলি


An ordinary character is a simple regular expression which matches that same character and nothing else.

একটি সাধারণ অক্ষর হল একটি সাধারণ নিয়মিত অভিব্যক্তি যা সেই একই অক্ষরের সাথে মিলে যায় এবং অন্য কিছুর সাথে নয়।


Variables u, v, p, x and y are positive integers.

u, v, p, x এবং y হল ধনাত্মক পূর্ণসংখ্যা।


We list a few properties of the congruence relation below.

আমরা নিচে congruence সম্পর্কের কয়েকটি বৈশিষ্ট্য তালিকাভুক্ত করছি।


For all n, n ≥ 0, x mod p ≡ y x^n mod p ≡ y^n.

সমস্ত n এর জন্য, n ≥ 0, x mod p ≡ y হলে x^n mod p ≡ y^n হবে।


Let e be any expression over integers that has only addition, subtraction, multiplication and exponentiation as its operators.

ধরুন e হল পূর্ণসংখ্যার উপর যেকোনো একটি রাশি যার অপারেটর হিসেবে শুধুমাত্র যোগ, বিয়োগ, গুণ এবং ঘাত রয়েছে।


Let e' be obtained from e by replacing any subexpression to f by (t mod p).

e' কে e থেকে পাওয়া যায়, যেখানে f এর যেকোনো উপরাশিকে (t mod p) দ্বারা প্রতিস্থাপন করা হয়েছে।


Then, e mod p ≡ e', i.e., e mod p = e' mod p.

তবে, e mod p ≡ e', অর্থাৎ, e mod p = e' mod p।


Note that an exponent is not a subexpression; so, it can’t be replaced by its mod.

লক্ষ্য করুন যে একটি ঘাত কোনো উপরাশি নয়; সুতরাং, এটিকে তার মড দ্বারা প্রতিস্থাপন করা যাবে না।


উদাহরণস্বরূপ (20 + 5) mod 3 = ((20 mod 3) + 5) mod 3


Relatively Prime Positive integers x and y are relatively prime iff gcd(x, y) = 1.

পরস্পর মৌলিক ধনাত্মক পূর্ণসংখ্যা x এবং y পরস্পর মৌলিক হবে যদি এবং কেবল যদি gcd(x, y) = 1 হয়।


For p and q relatively prime, (u mod p ≡ v ∧ u mod q ≡ v) ≡ (u mod p × q ≡ v).

যদি p এবং q পরস্পর মৌলিক হয়, তবে (u mod p ≡ v ∧ u mod q ≡ v) ≡ (u mod p × q ≡ v)।


Disprove each of the following conclusions.

নিম্নলিখিত প্রতিটি সিদ্ধান্তকে ভুল প্রমাণ করুন।


p = 3, u, v = 2, 2 এবং x, y = 4, 1 ব্যবহার করুন।


For any nonnegative integer m, b^m mod p ≡ b^(m mod (p-1)).

যে কোনো ঋণাত্মক-নয় পূর্ণসংখ্যা m এর জন্য, b^m mod p ≡ b^(m mod (p-1))।


We prove the following result: given nonnegative integers x and y, where both integers are not zero, there exist integers a and b such that a × x + b × y = gcd(x, y).

আমরা নিম্নলিখিত ফলাফলটি প্রমাণ করি: দুটি ঋণাত্মক-নয় পূর্ণসংখ্যা x এবং y দেওয়া আছে, যেখানে উভয় পূর্ণসংখ্যাই শূন্য নয়, তবে এমন পূর্ণসংখ্যা a এবং b বিদ্যমান যা a × x + b × y = gcd(x, y) হয়।


For example, let x, y = 12, 32. Then gcd(x, y) = 4.

উদাহরণস্বরূপ, ধরা যাক x, y = 12, 32। তাহলে gcd(x, y) = 4।


We can prove Bézout’s lemma easily by applying induction on x + y.

আমরা x + y এর উপর আরোহন (induction) প্রয়োগ করে সহজেই বেজোর উপপাদ্য প্রমাণ করতে পারি।


Then gcd(x, y) = y. We have to display a and b such that a × x + b × y = y.

তাহলে gcd(x, y) = y। আমাদের a এবং b এমনভাবে দেখাতে হবে যেন a × x + b × y = y হয়।


Similarly, if y = 0 and x > 0, set a, b = 1, 0.

একইভাবে, যদি y = 0 এবং x > 0 হয়, তবে a, b = 1, 0 ধরুন।


Since x - y + y < x + y, applying induction, there exist a' and b' such that a' × (x - y) + b' × y = gcd(x - y, y).

যেহেতু x - y + y < x + y, আরোহন প্রয়োগ করে, a' এবং b' বিদ্যমান থাকবে যেন a' × (x - y) + b' × y = gcd(x - y, y) হয়।


We will modify this algorithm to compute a and b as well.

আমরা a এবং b গণনা করার জন্য এই অ্যালগরিদমটি সংশোধন করব।


initial state holds for the empty string, and (3) for each transition do the following verification: suppose the transition is labeledsand it is from a state annotated withbto one withc; then, show that ifbholds for any string x, thencholds forxs.

শূণ্য স্ট্রিংয়ের জন্য প্রাথমিক অবস্থা প্রযোজ্য, এবং (3) প্রতিটি পরিবর্তনের জন্য নিম্নলিখিত যাচাইকরণ করুন: ধরুন পরিবর্তনটি s লেবেলযুক্ত এবং এটি b চিহ্নিত একটি অবস্থা থেকে c চিহ্নিত অবস্থায় যাচ্ছে; তাহলে, দেখান যে যদি b কোনো স্ট্রিং x এর জন্য প্রযোজ্য হয়, তাহলে xs এর জন্য c প্রযোজ্য হবে।


For the machine in Figure 4.12, we have already done step (1).

চিত্র 4.12-এ দেখানো মেশিনের জন্য, আমরা ইতিমধ্যে ধাপ (1) সম্পন্ন করেছি।


For step (2), we have to show that the empty string satisfiesp∧q, that is, the empty string has an even number of 0s and 1s, which clearly holds.

ধাপ (2)-এর জন্য, আমাদের দেখাতে হবে যে খালি স্ট্রিং p∧q পূরণ করে, অর্থাৎ, খালি স্ট্রিংটিতে জোড় সংখ্যক 0 এবং 1 রয়েছে, যা স্পষ্টভাবে প্রযোজ্য।


For step (3), we have to verify all eight transitions, as shown in Table 4.8.

ধাপ (3)-এর জন্য, আমাদের টেবিল 4.8-এ দেখানো হিসাবে, আটটি পরিবর্তন যাচাই করতে হবে।


For example, it is straightforward to verify the transition from A to B by considering an arbitrary stringxwith an even number of 0s and 1s (p∧q) and proving thatx0 has odd number of 0s and even number of 1s (¬p∧q).

উদাহরণস্বরূপ, A থেকে B-তে পরিবর্তনটি যাচাই করা সহজ, একটি নির্বিচারে স্ট্রিং x বিবেচনা করে যাতে জোড় সংখ্যক 0 এবং 1 আছে (p∧q) এবং প্রমাণ করে যে x0-এর বিজোড় সংখ্যক 0 এবং জোড় সংখ্যক 1 আছে (¬p∧q)।


Why Does the Verification Procedure Work?

যাচাইকরণ পদ্ধতি কেন কাজ করে?


It seems that we are using some sort of circular argument, but that is not so.

মনে হচ্ছে আমরা এক ধরণের বৃত্তাকার যুক্তি ব্যবহার করছি, তবে তা নয়।


In order to convince yourself 4.2. FINITE STATE MACHINE83 that the argument is not circular, construct a proof using induction.

নিজেকে বোঝানোর জন্য যে যুক্তিটি বৃত্তাকার নয়, আবেশন ব্যবহার করে একটি প্রমাণ তৈরি করুন।


The the- orem we need to prove is as follows: after processing any stringx, the machine state is A, B, C or D iffxsatisfiesp∧q,¬p∧q,¬p∧¬qorp∧¬q, respectively.

আমাদের প্রমাণ করতে হবে এমন উপপাদ্যটি নিম্নরূপ: যেকোনো স্ট্রিং x প্রক্রিয়াকরণের পরে, মেশিনের অবস্থা A, B, C বা D হবে যদি এবং শুধুমাত্র যদি x যথাক্রমে p∧q, ¬p∧q, ¬p∧¬q বা p∧¬q পূরণ করে।


The proof of this statement is by induction on the length ofx.

এই বিবৃতির প্রমাণটি x-এর দৈর্ঘ্যের উপর আবেশন দ্বারা করা হয়।


For|x|= 0:xis an empty string andp∧qholds for it.

|x|= 0 এর জন্য: x একটি খালি স্ট্রিং এবং এর জন্য p∧q প্রযোজ্য।


The machine state is A, so the theorem holds.

মেশিনের অবস্থা A, তাই উপপাদ্যটি প্রযোজ্য।


For|x|=n+ 1,n≥0: use the induction hypothesis and the proofs from Table 4.8.

|x|=n+ 1,n≥0 এর জন্য: আবেশন অনুমান এবং টেবিল 4.8 থেকে প্রমাণগুলি ব্যবহার করুন।


এই ধরনের মেশিনগুলিকে গ্রাহক বলা হয়।


Now, we will en- hance the machine so that it also produces a string as output; such machines are calledtransducers.

এখন, আমরা মেশিনটিকে উন্নত করব যাতে এটি আউটপুট হিসাবে একটি স্ট্রিং তৈরি করে; এই ধরনের মেশিনগুলিকে ট্রান্সডিউসার বলা হয়।


Transducers provide powerful string processing mechanism.

ট্রান্সডিউসার শক্তিশালী স্ট্রিং প্রক্রিয়াকরণ প্রক্রিয়া সরবরাহ করে।


Typically, acceptance or rejection of the input string is of no particular im- portance in transducers; only the construction of the appropriate output string matters.

সাধারণত, ইনপুট স্ট্রিং গ্রহণ বা প্রত্যাখ্যান ট্রান্সডিউসারে কোনো বিশেষ গুরুত্বের নয়; শুধুমাত্র উপযুক্ত আউটপুট স্ট্রিং তৈরি করাটাই গুরুত্বপূর্ণ।


Pictorially, we will depict a transition as shown in Figure 4.13.

চিত্রের মাধ্যমে, আমরা চিত্র 4.13-এ দেখানো হিসাবে একটি পরিবর্তন চিত্রিত করব।


It denotes that on reading symbols, the machine transits from A to B and outputs string t.

এটি বোঝায় যে প্রতীকগুলি পড়ার পরে, মেশিনটি A থেকে B-তে যায় এবং স্ট্রিং t আউটপুট করে।


The output alphabet of the machine —over whichtis a string— may differ from its input alphabet.

মেশিনের আউটপুট বর্ণমালা — যার উপর t একটি স্ট্রিং — তার ইনপুট বর্ণমালা থেকে আলাদা হতে পারে।


We retrieve the top pair of values from the stack, assign them to sand p, and simulate the transition that handles a constant, i.e., we set p:=p×a.

আমরা স্ট্যাক থেকে শীর্ষস্থানীয় মানগুলির জোড়া পুনরুদ্ধার করি, সেগুলিকে s এবং p-তে নির্ধারণ করি এবং ধ্রুবকটি পরিচালনা করে এমন রূপান্তরকে অনুকরণ করি, অর্থাৎ, আমরা p:=p×a সেট করি।


We store the length of the stack in n, incrementing it on encountering a “(” and decrementing it for a “)”.

আমরা স্ট্যাকের দৈর্ঘ্য n-এ সংরক্ষণ করি, '(' সম্মুখীন হলে এটি বৃদ্ধি করি এবং ')' এর জন্য হ্রাস করি।


A “)” is accepted only when n >0 and “#” when n= 0.

একটি ')' শুধুমাত্র তখনই গৃহীত হয় যখন n > 0 এবং '#' যখন n = 0 হয়।


Run the machine of Figure 4.34 on input string 3 + (4×(2×6 + 8)×3) + 7# and show the values of the variables (including contents of the stack) at each step.

ইনপুট স্ট্রিং 3 + (4×(2×6 + 8)×3) + 7# এর উপর চিত্র 4.34-এর মেশিনটি চালান এবং প্রতিটি ধাপে ভেরিয়েবলগুলির মান দেখান (স্ট্যাকের বিষয়বস্তু সহ)।


Would it be simpler to specify the machine in Figure 4.34 if we could call a machine recursively?

যদি আমরা একটি মেশিনকে পুনরাবৃত্তভাবে কল করতে পারতাম তবে চিত্র 4.34-এ মেশিনটি নির্দিষ্ট করা কি সহজ হত?


Explore the possibility of adding recursion to finite state machines.

ফাইনাইট স্টেট মেশিনে পুনরাবৃত্তি যোগ করার সম্ভাবনা অন্বেষণ করুন।


An event happens in the external world and the machine has to react to the event.

বাহ্যিক বিশ্বে একটি ঘটনা ঘটে এবং মেশিনটিকে সেই ঘটনার প্রতিক্রিয়া জানাতে হয়।


Consider the dome light in a car that is either “on” or “off”.

একটি গাড়ির ডোম লাইটের কথা বিবেচনা করুন যা হয় “চালু” অথবা “বন্ধ”।


The light comes on if a switch is pressed (denote the switch press by event sw) or if the door is opened (denote by door).

যদি একটি সুইচ চাপা হয় (সুইচ প্রেসকে ঘটনা sw দ্বারা চিহ্নিত করুন) অথবা দরজা খোলা হয় (door দ্বারা চিহ্নিত করুন) তবে আলো জ্বলে উঠবে।


The light goes off if the switch is pressed again (i.e., event sw), the door is closed (denote by door ′ ) or 5 minutes elapse with the light being on (denote this time-out event by tmout).

সুইচটি আবার চাপলে (অর্থাৎ, ঘটনা sw), দরজা বন্ধ হলে (door ′ দ্বারা চিহ্নিত করুন) অথবা আলো চালু অবস্থায় ৫ মিনিট অতিবাহিত হলে (এই টাইম-আউট ঘটনাটিকে tmout দ্বারা চিহ্নিত করুন) আলো নিভে যায়।


The example just described denotes an elementary event-based system.

এইমাত্র বর্ণিত উদাহরণটি একটি প্রাথমিক ঘটনা-ভিত্তিক সিস্টেমকে বোঝায়।


The events are sw, door, door ′ , and tmout.

ঘটনাগুলি হল sw, door, door ′, এবং tmout।


The designer has no control over if or when the events happen (the time out event is special; it is guaranteed to happen at the designated time).

ডিজাইনারের ইভেন্টগুলি কখন ঘটবে বা না ঘটবে তার উপর কোনো নিয়ন্ত্রণ নেই (টাইম আউট ইভেন্টটি বিশেষ; এটি নির্দিষ্ট সময়ে ঘটবেই)।


He has to design a system that enters the correct state and carries out the appropriate actions when an event happens.

তাকে এমন একটি সিস্টেম ডিজাইন করতে হবে যা সঠিক অবস্থায় প্রবেশ করে এবং একটি ঘটনা ঘটলে উপযুক্ত কাজগুলি করে।


The event may be likened to the occurrence of a symbol.

ঘটনাটিকে একটি চিহ্নের ঘটনার সাথে তুলনা করা যেতে পারে।


Therefore, we treat each event as a symbol and use the diagrams as before to depict the state transitions.

অতএব, আমরা প্রতিটি ঘটনাকে একটি প্রতীক হিসাবে বিবেচনা করি এবং রাজ্য পরিবর্তনগুলি চিত্রিত করতে আগের মতো ডায়াগ্রামগুলি ব্যবহার করি।


Figure 4.35 shows a possible specification of the dome light problem.

চিত্র 4.35 ডোম লাইট সমস্যার একটি সম্ভাব্য স্পেসিফিকেশন দেখায়।


Here, we have taken the liberty of writing compound events as boolean combinations of simpler events.

এখানে, আমরা যৌগিক ঘটনাগুলিকে সরল ঘটনাগুলির বুলিয়ান সংমিশ্রণ হিসাবে লেখার স্বাধীনতা নিয়েছি।


Boolean connectives ∧ and ∨ have the expected meanings, ¬ is problematic and should be avoided.

বুলিয়ান সংযোগকারী ∧ এবং ∨ এর প্রত্যাশিত অর্থ রয়েছে, ¬ সমস্যাযুক্ত এবং এটি এড়ানো উচিত।


The notions of accepting and rejecting states are irrelevant for specifications of event based systems.

ঘটনা ভিত্তিক সিস্টেমের স্পেসিফিকেশনের জন্য গ্রহণ এবং প্রত্যাখ্যানের ধারণাগুলি অপ্রাসঙ্গিক।


The infix operator `rem` is used for the remainder operation.

`rem` নামক ইনফিক্স অপারেটরটি ভাগশেষের জন্য ব্যবহৃত হয়।


The `mod` operator returns a value between 0 and y-1 for positive y.

`mod` অপারেটর ধনাত্মক y-এর জন্য 0 এবং y-1 এর মধ্যে একটি মান প্রদান করে।


For example, (-2) `rem` 3 is -2 and (-2) `mod` 3 is 1.

উদাহরণস্বরূপ, (-2) `rem` 3 হল -2 এবং (-2) `mod` 3 হল 1।


The functions `even` and `odd` return boolean results.

`even` এবং `odd` ফাংশনগুলি বুলিয়ান ফলাফল প্রদান করে।


Functions `max` and `min` take two arguments and return the maximum and minimum values, respectively.

`max` এবং `min` ফাংশন দুটি আর্গুমেন্ট নেয় এবং যথাক্রমে সর্বাধিক এবং সর্বনিম্ন মান প্রদান করে।


It is possible to write a function name followed by its arguments without parentheses.

বন্ধনী ছাড়াই একটি ফাংশনের নামের পরে তার আর্গুমেন্টগুলি লেখা সম্ভব।


Parentheses are needed only to enforce an evaluation order.

শুধুমাত্র মূল্যায়ন ক্রম কার্যকর করার জন্য বন্ধনী প্রয়োজন।


The arithmetic relations are <, <=, ==, /=, >, >=.

পাটিগণিত সম্পর্কগুলি হল <, <=, ==, /=, >, >=।


Each of these is a binary operator that returns a boolean result, True or False.

এগুলির প্রত্যেকটি একটি বাইনারি অপারেটর যা একটি বুলিয়ান ফলাফল, সত্য বা মিথ্যা প্রদান করে।


The equality operator is written as == and inequality as /=.

সমানতা অপারেটরটি == হিসাবে এবং অসমতা /= হিসাবে লেখা হয়।


Haskell does not specify how to add an integer to a boolean.

হ্যাসকেল একটি পূর্ণসংখ্যার সাথে একটি বুলিয়ান যোগ করার নিয়ম উল্লেখ করে না।


There are two boolean constants, written as True and False.

এখানে দুটি বুলিয়ান ধ্রুবক রয়েছে, যা সত্য এবং মিথ্যা হিসাবে লেখা হয়।


The boolean operators are: not, &&, ||, ==, /=.

বুলিয়ান অপারেটরগুলি হল: not, &&, ||, ==, /=।


Haskell supports two kinds of integers, Integer and Int data types.

হ্যাসকেল দুই ধরনের পূর্ণসংখ্যা সমর্থন করে, ইন্টিজার এবং ইন্ট ডেটা টাইপ।


A character is enclosed within single quotes and a string is enclosed within double quotes.

একটি অক্ষর একক উদ্ধৃতি চিহ্নের মধ্যে আবদ্ধ থাকে এবং একটি স্ট্রিং দ্বিগুণ উদ্ধৃতি চিহ্নের মধ্যে আবদ্ধ থাকে।


You can compare characters using arithmetic relations.

আপনি গাণিতিক সম্পর্ক ব্যবহার করে অক্ষর তুলনা করতে পারেন।


The letters are ordered in the usual fashion with uppercase letters smaller than lowercase letters.

অক্ষরগুলি স্বাভাবিক পদ্ধতিতে সাজানো হয়, যেখানে বড় হাতের অক্ষর ছোট হাতের অক্ষরের চেয়ে ছোট।


There are two functions defined on characters, ord and chr.

অক্ষরের উপর ord এবং chr নামে দুটি ফাংশন সংজ্ঞায়িত করা হয়েছে।


Function ord(c) returns the value of the character c in the internal coding table.

ord(c) ফাংশনটি অভ্যন্তরীণ কোডিং টেবিলে c অক্ষরের মান প্রদান করে।


A string is a list of characters; all the rules about lists apply to strings.

একটি স্ট্রিং হল অক্ষরের একটি তালিকা; তালিকা সম্পর্কিত সমস্ত নিয়ম স্ট্রিংগুলির ক্ষেত্রে প্রযোজ্য।


The program evaluates polynomials efficiently using Horner's rule.

এই প্রোগ্রামটি হর্নারের নিয়ম ব্যবহার করে দক্ষতার সাথে বহুপদগুলির মূল্যায়ন করে।


We use induction to prove properties of recursive programs.

আমরা পুনরাবৃত্তিমূলক প্রোগ্রামগুলির বৈশিষ্ট্য প্রমাণ করতে আবেশ ব্যবহার করি।


The function 'rvc' combines list reversal and concatenation.

'আরভিসি' ফাংশনটি তালিকা বিপরীতকরণ এবং সংযোগ একত্রিত করে।


Horner's rule provides an efficient way to evaluate polynomials.

হর্নারের নিয়ম বহুপদগুলির মূল্যায়নের একটি কার্যকর উপায় সরবরাহ করে।


Higher-order functions are common in functional programming.

উচ্চ-ক্রমের ফাংশনগুলি কার্যকরী প্রোগ্রামিংয়ে সাধারণ।


The 'foldr' function is a higher-order function.

'ফোল্ডআর' ফাংশনটি একটি উচ্চ-ক্রমের ফাংশন।


আমরা 'ফোল্ডআর' ব্যবহার করে 'সামল' সংজ্ঞায়িত করতে পারি।


The type of 'foldr' is (a -> a -> a) -> a -> [a] -> a.

'ফোল্ডআর'-এর প্রকার হল (a -> a -> a) -> a -> [a] -> a।


The 'map' function applies a function to each element of a list.

'ম্যাপ' ফাংশন একটি তালিকার প্রতিটি উপাদানে একটি ফাংশন প্রয়োগ করে।


The type of 'map' is (a -> b) -> [a] -> [b].

'ম্যাপ'-এর প্রকার হল (a -> b) -> [a] -> [b]।


The 'filter' function selects elements based on a predicate.

'ফিল্টার' ফাংশন একটি পূর্বাভাস এর উপর ভিত্তি করে উপাদান নির্বাচন করে।


The type of 'filter' is (a -> Bool) -> [a] -> [a].

'ফিল্টার'-এর প্রকার হল (a -> Bool) -> [a] -> [a]।


Boolean satisfiability is an important problem in computer science.

বুলিয়ান সন্তুষ্টি কম্পিউটার বিজ্ঞানে একটি গুরুত্বপূর্ণ সমস্যা।


The Davis-Putnam procedure is a method for solving satisfiability.

ডেভিস-পুটনাম পদ্ধতি সন্তুষ্টি সমাধানের একটি পদ্ধতি।


A formula in Conjunctive Normal Form (CNF) is a conjunction of terms.

Conjunctive Normal Form (CNF)-এর একটি সূত্র হল পদগুলির একটি সংযোগ।


The satisfiability problem is NP-complete.

সন্তুষ্টি সমস্যাটি NP-সম্পূর্ণ।


We can represent a formula as a list of terms.

আমরা একটি সূত্রকে পদের তালিকা হিসাবে উপস্থাপন করতে পারি।


The 'dp' function determines if a formula is satisfiable.

'ডিপি' ফাংশন নির্ধারণ করে যে একটি সূত্র সন্তুষ্ট কিনা।


The 'reduce' function simplifies a formula.

'রিডিউস' ফাংশন একটি সূত্রকে সরল করে।


Google uses functional programming ideas for web applications.

গুগল ওয়েব অ্যাপ্লিকেশনগুলির জন্য কার্যকরী প্রোগ্রামিং ধারণা ব্যবহার করে।


The function's execution time is at most logarithmic in the argument values.

ফাংশনটির কার্যকর করার সময় আর্গুমেন্ট মানগুলির ক্ষেত্রে সর্বাধিক লগারিদমিক।


We have seen a few elementary data types so far.

আমরা ইতিমধ্যে কয়েকটি প্রাথমিক ডেটা প্রকার দেখেছি।


There are two important ways we can build larger structures using data from the elementary types— tuple and list.

দুটি গুরুত্বপূর্ণ উপায় রয়েছে যার মাধ্যমে আমরা প্রাথমিক প্রকারের ডেটা ব্যবহার করে বৃহত্তর কাঠামো তৈরি করতে পারি—টুপল এবং তালিকা।


Tuple is the Haskell’s version of a record; we may put several kinds of data together and give it a name.

টুপল হল হাস্কেল-এর রেকর্ডের সংস্করণ; আমরা বিভিন্ন ধরণের ডেটা একসাথে রাখতে পারি এবং এটিকে একটি নাম দিতে পারি।


In the simplest case, we put together two pieces of data and form a 2-tuple, also called a pair.

সবচেয়ে সহজ ক্ষেত্রে, আমরা দুটি ডেটা একত্রিত করি এবং একটি ২-টুপল তৈরি করি, যা একটি জোড়া নামেও পরিচিত।


As you can see, the components may be of different types.

আপনি দেখতে পাচ্ছেন, উপাদানগুলি বিভিন্ন প্রকারের হতে পারে।


Note that Haskell treats (3) and 3 alike, both are treated as numbers.

লক্ষ্য করুন যে হাস্কেল (3) এবং 3 কে একইভাবে বিবেচনা করে, উভয়কেই সংখ্যা হিসাবে বিবেচনা করা হয়।


There are two predefined functions, fst and snd, that return the first and the second components of a pair, respectively.

দুটি পূর্বনির্ধারিত ফাংশন রয়েছে, fst এবং snd, যা যথাক্রমে একটি জোড়ার প্রথম এবং দ্বিতীয় উপাদানটি প্রদান করে।


There is no restriction at all in Haskell about what you can have as the first and the second component of a tuple.

একটি টুপলের প্রথম এবং দ্বিতীয় উপাদান হিসাবে আপনার কী থাকতে পারে সে সম্পর্কে হাস্কেলে কোনও বিধিনিষেধ নেই।


In particular, we can create another tuple hard = (teacher,course) and extract its first and second components by *Main> fst hard ("Misra","Jayadev")

বিশেষ করে, আমরা অন্য একটি টুপল তৈরি করতে পারি hard = (teacher,course) এবং *Main> fst hard ("Misra","Jayadev") এর মাধ্যমে এর প্রথম এবং দ্বিতীয় উপাদানগুলি বের করতে পারি।


Haskell allows you to create tuples with any number of components, but fst and snd are applicable only to a pair.

হাস্কেল আপনাকে যেকোনো সংখ্যক উপাদান সহ টুপল তৈরি করতে দেয়, তবে fst এবং snd শুধুমাত্র একটি জোড়ার জন্য প্রযোজ্য।


Revisiting the Fibonacci Computation As we saw in the Figure 5.1 of page 133, there is considerable recomputation in evaluating fib n, in general.

ফিবোনাচি গণনার পুনর্বিবেচনা আমরা যেমন 133 পৃষ্ঠার চিত্র 5.1-এ দেখেছি, সাধারণভাবে fib n মূল্যায়ন করার সময় উল্লেখযোগ্য পুনঃগণনা হয়।


Here, I sketch a strategy to eliminate the recomputation.

এখানে, আমি পুনঃগণনা দূর করার জন্য একটি কৌশল স্কেচ করি।


We define a function, called fibpair, which has an argument n, and returns the pair ((fib n), (fib (n+1))), i.e., two consecutive elements of the Fibonacci sequence.

আমরা একটি ফাংশন সংজ্ঞায়িত করি, যাকে fibpair বলা হয়, যার একটি আর্গুমেন্ট n আছে এবং এটি ((fib n), (fib (n+1))) জোড়াটি প্রদান করে, অর্থাৎ, ফিবোনাচি সিকোয়েন্সের দুটি ধারাবাহিক উপাদান।


হাস্কেলের প্রতিটি অভিব্যক্তির একটি প্রকার রয়েছে।


The type may be specified by the programmer, or deduced by the interpreter.

প্রকারটি প্রোগ্রামার দ্বারা নির্দিষ্ট করা যেতে পারে, অথবা ইন্টারপ্রেটার দ্বারা অনুমান করা যেতে পারে।


If you write 3+4, the interpreter can deduce the type of the operands and the computed value to be integer (not quite, as you will see).

আপনি যদি 3+4 লেখেন, তাহলে ইন্টারপ্রেটার অপারেন্ডের প্রকার এবং গণনা করা মানটি পূর্ণসংখ্যা হিসাবে অনুমান করতে পারে (ঠিক নয়, যেমনটি আপনি দেখতে পাবেন)।


The type of a tuple is a tuple of types, one entry for the type of each operand.

একটি টুপলের প্রকার হল প্রকারের একটি টুপল, প্রতিটি অপারেন্ডের প্রকারের জন্য একটি এন্ট্রি।


Each function has a type, namely, the types of its arguments in order followed by the type of the result, all separated by ->.

প্রতিটি ফাংশনের একটি প্রকার রয়েছে, যথা, এর আর্গুমেন্টগুলির প্রকারগুলি ক্রমানুসারে অনুসরণ করে ফলাফলের প্রকার, সমস্ত -> দ্বারা পৃথক করা হয়েছে।


Haskell allows us to write functions whose arguments can be any type, or any type that satisfies some constraint.

হাস্কেল আমাদের এমন ফাংশন লিখতে দেয় যার আর্গুমেন্ট যেকোনো প্রকারের হতে পারে, অথবা এমন কোনো প্রকার যা কিছু সীমাবদ্ধতা পূরণ করে।


Show that the execution time of reverse xs ys is O(n) where the length of xs is n.

দেখাও যে reverse xs ys এর কার্যকর করার সময় O(n), যেখানে xs এর দৈর্ঘ্য n।


Prove from the definition of rev that rev (rev xs) = xs.

rev এর সংজ্ঞা থেকে প্রমাণ করুন যে rev (rev xs) = xs।


Prove from the definition of rev and reverse that reverse xs ys = (rev xs) ++ ys.

rev এবং reverse এর সংজ্ঞা থেকে প্রমাণ করুন যে reverse xs ys = (rev xs) ++ ys।


Show how to right-rotate a list efficiently (i.e., in linear time in the size of the argument list).

একটি তালিকাকে কীভাবে দক্ষতার সাথে ডানদিকে ঘোরানো যায় তা দেখান (অর্থাৎ, আর্গুমেন্ট তালিকার আকারে লিনিয়ার সময়ে)।


Right-rotation of [1,2,3,4] yields [4,1,2,3].


ইঙ্গিত: rev ব্যবহার করুন।


Disk 1 moves in every alternate step starting with the first step.

ডিস্ক ১ প্রথম ধাপ থেকে শুরু করে প্রতিটি বিকল্প ধাপে চলে।


If n is odd, disk 1 moves cyclically from 'a' to 'b' to 'c' to 'a'..., and if n is even, disk 1 moves cyclically from 'a' to 'c' to 'b' to 'a'....

যদি n বিজোড় হয়, তবে ডিস্ক ১ 'a' থেকে 'b' থেকে 'c' থেকে 'a' পর্যন্ত চক্রাকারে চলে..., এবং যদি n জোড় হয়, তবে ডিস্ক ১ 'a' থেকে 'c' থেকে 'b' থেকে 'a' পর্যন্ত চক্রাকারে চলে...


In each remaining step, there is exactly one possible move: ignore the peg of which disk 1 is the top; compare the tops of the two remaining pegs and move the smaller one to the top of the other peg (if one peg is empty, move the top of the other peg to its top).

প্রতিটি অবশিষ্ট ধাপে, শুধুমাত্র একটি সম্ভাব্য পদক্ষেপ রয়েছে: যে খুঁটির উপরে ডিস্ক ১ আছে সেটি উপেক্ষা করুন; অবশিষ্ট দুটি খুঁটির উপরের অংশগুলি তুলনা করুন এবং ছোটটিকে অন্য খুঁটির উপরে সরান (যদি একটি খুঁটি খালি থাকে, তবে অন্য খুঁটির উপরের অংশটিকে তার উপরে সরান)।


I don’t know an easy proof of this iterative scheme; in fact, the best proof I know shows that this scheme is equivalent to an obviously correct recursive scheme.

আমি এই পুনরাবৃত্তিমূলক স্কিমের সহজ প্রমাণ জানি না; প্রকৃতপক্ষে, আমার জানা সেরা প্রমাণ দেখায় যে এই স্কিমটি সুস্পষ্টভাবে সঠিক একটি পুনরাবৃত্তিমূলক স্কিমের সমতুল্য।


The recursive scheme is based on the following observations.

পুনরাবৃত্তিমূলক স্কিমটি নিম্নলিখিত পর্যবেক্ষণের উপর ভিত্তি করে তৈরি করা হয়েছে।


There is a step in which the largest disk is moved from 'a'; we show that it is sufficient to move it only once, from 'a' to 'b'.

এমন একটি পদক্ষেপ আছে যেখানে বৃহত্তম ডিস্কটি 'a' থেকে সরানো হয়; আমরা দেখাই যে এটিকে শুধুমাত্র একবার, 'a' থেকে 'b'-তে সরানোর জন্য যথেষ্ট।


At that moment, disk n is the top disk at 'a' and there is no other disk at 'b'.

সেই মুহূর্তে, ডিস্ক n 'a'-তে উপরের ডিস্ক এবং 'b'-তে অন্য কোনো ডিস্ক নেই।


So, all other disks are at 'c', and, according to the given constraint, they are correctly stacked.

সুতরাং, অন্য সব ডিস্ক 'c'-তে আছে, এবং প্রদত্ত সীমাবদ্ধতা অনুসারে, সেগুলি সঠিকভাবে সাজানো আছে।


Therefore, prior to the move of disk n, we have the subtask of moving the remaining n−1 disks, provided n > 1, from 'a' to 'c'.

অতএব, ডিস্ক n সরানোর আগে, আমাদের অবশিষ্ট n−1 ডিস্ক সরানোর উপ-কাজ রয়েছে, যদি n > 1 হয়, 'a' থেকে 'c'-তে।


Following the move of disk n, the subtask is to move the remaining n−1 disks from 'a' to 'c'.

ডিস্ক n সরানোর পরে, উপ-কাজটি হল অবশিষ্ট n−1 ডিস্ক 'a' থেকে 'c'-তে সরানো।


Each of these subtasks is smaller than the original task, and may be solved recursively.

এই উপ-কাজগুলির প্রত্যেকটি মূল কাজের চেয়ে ছোট, এবং পুনরাবৃত্তিমূলকভাবে সমাধান করা যেতে পারে।


Note that in solving the subtasks, disk n may be disregarded, because any disk can be placed on it; hence, its presence or absence is immaterial.

লক্ষ্য করুন যে উপ-কাজগুলি সমাধান করার সময়, ডিস্ক n উপেক্ষা করা যেতে পারে, কারণ এটির উপর যেকোনো ডিস্ক স্থাপন করা যেতে পারে; সুতরাং, এটির উপস্থিতি বা অনুপস্থিতি অপ্রাসঙ্গিক।


Below, tower n x y z returns a list of steps to transfer n disks from peg x to y using z as an intermediate peg.

নীচে, tower n x y z n সংখ্যক ডিস্ককে খুঁটি x থেকে y-তে স্থানান্তর করার জন্য পদক্ষেপগুলির একটি তালিকা প্রদান করে, z-কে একটি মধ্যবর্তী খুঁটি হিসাবে ব্যবহার করে।


tower ফাংশনের প্রকার কী?


In 150 seconds, about a minute is spent on initialization.

১৫০ সেকেন্ডের মধ্যে, প্রায় এক মিনিট আরম্ভ করতে লাগে।


The scheme they have developed is fairly robust with respect to machine failures.

তাঁরা যে পরিকল্পনা তৈরি করেছেন, তা যন্ত্রের ত্রুটির ক্ষেত্রে বেশ শক্তিশালী।


More machines can be added easily to the cluster and that computations make effective use of a larger cluster.

ক্লাস্টারে আরও সহজে মেশিন যোগ করা যেতে পারে এবং গণনাগুলি বৃহত্তর ক্লাস্টারের কার্যকর ব্যবহার করে।


The main idea behind their scheme is the observation that many web-based applications can be written as a map operation followed by a reduce operation.

তাদের পরিকল্পনার মূল ধারণাটি হল এই পর্যবেক্ষণ যে অনেক ওয়েব-ভিত্তিক অ্যাপ্লিকেশনকে একটি ম্যাপ অপারেশন এবং তারপরে একটি হ্রাস অপারেশন হিসাবে লেখা যেতে পারে।


These operations and their terminologies are similar, though not identical, to the corresponding operations we have studied in this chapter.

এই অপারেশনগুলি এবং তাদের পরিভাষাগুলি একই রকম, যদিও অভিন্ন নয়, এই অধ্যায়ে আমরা যে অপারেশনগুলি অধ্যয়ন করেছি তার সাথে।


First, map is a function that takes a (key, value) pair as argument and returns a list of (key, value) pairs.

প্রথমত, ম্যাপ হল এমন একটি ফাংশন যা একটি (কী, মান) জোড়া আর্গুমেন্ট হিসাবে নেয় এবং (কী, মান) জোড়ার একটি তালিকা প্রদান করে।


The argument keys and values may have different types from the result keys and values.

আর্গুমেন্ট কী এবং মানগুলির প্রকারগুলি ফলাফলের কী এবং মানগুলির থেকে আলাদা হতে পারে।


As an example, the argument may be a pair (n, s), where n is a positive integer and s is a string.

উদাহরণস্বরূপ, আর্গুমেন্টটি একটি জোড়া (n, s) হতে পারে, যেখানে n একটি ধনাত্মক পূর্ণসংখ্যা এবং s একটি স্ট্রিং।


Here is the contents of a text document and n is a small value, say 12, which specifies the length of words of interest.

এখানে একটি টেক্সট ডকুমেন্টের বিষয়বস্তু রয়েছে এবং n একটি ছোট মান, যেমন 12, যা আগ্রহের শব্দগুলির দৈর্ঘ্য নির্দিষ্ট করে।


Function map may return a list of (w, c) pairs, where w is a word of length n or less in the document, and c is the number of occurrences of w in the document.

ফাংশন ম্যাপ (w, c) জোড়ার একটি তালিকা দিতে পারে, যেখানে w হল ডকুমেন্টের n বা তার কম দৈর্ঘ্যের একটি শব্দ এবং c হল ডকুমেন্টে w এর ঘটনার সংখ্যা।


Typically, map is applied not to a single document, but millions of documents at once.

সাধারণত, ম্যাপ একটি একক ডকুমেন্টে নয়, বরং একই সাথে লক্ষ লক্ষ ডকুমেন্টে প্রয়োগ করা হয়।


This feature allows us to deploy the massive cluster of computers effectively.

এই বৈশিষ্ট্যটি আমাদের কম্পিউটারের বিশাল ক্লাস্টারকে কার্যকরভাবে স্থাপন করতে দেয়।


Next, the outputs of all the maps, say M lists of (w, c) pairs for M documents, are aggregated into R lists where each list holds all the counts for a single word.

এর পরে, সমস্ত ম্যাপের আউটপুট, ধরুন M ডকুমেন্টের জন্য (w, c) জোড়ার M তালিকা, R তালিকায় একত্রিত করা হয় যেখানে প্রতিটি তালিকা একটি শব্দের জন্য সমস্ত গণনা ধারণ করে।


Now, reduce operation is applied to each of these R lists individually, producing R outputs.

এখন, হ্রাস অপারেশন এই R তালিকাগুলির প্রত্যেকটিতে আলাদাভাবে প্রয়োগ করা হয়, যার ফলে R আউটপুট তৈরি হয়।


In this example, a reduce operation might sum up the counts, which will tell us something about the most commonly occurring words in all the documents.

এই উদাহরণে, একটি হ্রাস অপারেশন গণনাগুলি যোগ করতে পারে, যা আমাদের সমস্ত নথিতে সবচেয়ে বেশি ব্যবহৃত শব্দগুলি সম্পর্কে কিছু বলবে।


In general, the user provides the code for both map and reduce, specifies the arguments over which they have to be applied, and suggests certain parameters for parallel processing.

সাধারণভাবে, ব্যবহারকারী ম্যাপ এবং হ্রাস উভয়ের জন্যই কোড সরবরাহ করে, যে আর্গুমেন্টগুলির উপর সেগুলি প্রয়োগ করতে হবে তা নির্দিষ্ট করে এবং সমান্তরাল প্রক্রিয়াকরণের জন্য নির্দিষ্ট পরামিতিগুলির পরামর্শ দেয়।


The run-time system takes care of the details of partitioning the input data, scheduling the program’s execution across a set of machines, handling machine failures, and managing the required inter-machine communication.

রান-টাইম সিস্টেম ইনপুট ডেটা বিভাজন, মেশিনের একটি সেটের জুড়ে প্রোগ্রামের কার্যকর করার সময়সূচী, মেশিন ব্যর্থতা পরিচালনা এবং প্রয়োজনীয় আন্ত-মেশিন যোগাযোগ ব্যবস্থাপনার বিস্তারিত যত্ন নেয়।


This allows programmers without any experience with parallel and distributed systems to easily utilize the resources of a large distributed system.

এটি সমান্তরাল এবং বিতরণ করা সিস্টেমের কোনো অভিজ্ঞতা ছাড়াই প্রোগ্রামারদের একটি বৃহৎ বিতরণ করা সিস্টেমের সংস্থানগুলি সহজে ব্যবহার করতে দেয়।


Here are some examples that can be expressed as Map-Reduce computations.

এখানে কিছু উদাহরণ দেওয়া হল যা ম্যাপ-রিডিউস গণনা হিসাবে প্রকাশ করা যেতে পারে।


We are given a large log of web page requests.

আমাদের ওয়েব পেজ অনুরোধের একটি বৃহৎ লগ দেওয়া হয়েছে।


The algorithm efficiently transforms data through several stages.

অ্যালগরিদমটি বেশ কয়েকটি পর্যায়ে ডেটা দক্ষতার সাথে রূপান্তরিত করে।


The selection operation extracts tuples that satisfy the predicate.

নির্বাচন প্রক্রিয়া সেই টিপলগুলি বের করে যা পূর্বাভাস পূরণ করে।


The projection operation simply lists the addresses.

প্রজেকশন অপারেশন কেবল ঠিকানাগুলি তালিকাভুক্ত করে।


We transform this relational expression.

আমরা এই সম্পর্কীয় অভিব্যক্তিটিকে রূপান্তরিত করি।


The original query would first compute R ./ S ./ T.

আসল ক্যোয়ারীটি প্রথমে R ./ S ./ T গণনা করবে।


Selections are applied as soon as possible.

নির্বাচনগুলি যত তাড়াতাড়ি সম্ভব প্রয়োগ করা হয়।


The join of the resulting relation is much more efficient.

ফলাফলস্বরূপ সম্পর্কের সংযোগ আরও অনেক বেশি কার্যকর।


There is no way to compute with the data.

ডেটা দিয়ে গণনা করার কোনও উপায় নেই।


We describe two classes of operations, Aggregation and Grouping.

আমরা দুটি শ্রেণীর ক্রিয়াকলাপ বর্ণনা করি, একত্রীকরণ এবং গ্রুপিং।


Aggregation operations combine the values in a column.

একাধিক অপারেশন একটি কলামের মানগুলিকে একত্রিত করে।


Grouping creates subrelations based on attribute values.

গ্রুপিং বৈশিষ্ট্য মানের উপর ভিত্তি করে উপ-সম্পর্ক তৈরি করে।


The result is a relation which has just one tuple.

ফলাফলটি এমন একটি সম্পর্ক যা কেবল একটি টিপল রয়েছে।


Consider the Grades relation in Table 6.11.

সারণী ৬.১১-এ গ্রেডস সম্পর্কটি বিবেচনা করুন।


Compute the average score in each quiz for each department.

প্রতিটি বিভাগের জন্য প্রতিটি কুইজে গড় স্কোর গণনা করুন।


SQL is a widely used language for data definition and manipulation.

SQL ডেটা সংজ্ঞা এবং ম্যানিপুলেশনের জন্য বহুল ব্যবহৃত একটি ভাষা।


The problem of string matching is to locate occurrences.

স্ট্রিং ম্যাচিংয়ের সমস্যা হল ঘটনাগুলি সনাক্ত করা।


প্যাটার্ন স্ট্রিংগুলির একটি সেট হতে পারে।


The text may consist of a set of strings.

টেক্সট স্ট্রিংগুলির একটি সেট নিয়ে গঠিত হতে পারে।


The naive algorithm matches the pattern against the string.

সরল অ্যালগরিদম স্ট্রিংয়ের বিপরীতে প্যাটার্নটি মিলিয়ে দেয়।


The idea of this algorithm is based on hashing.

এই অ্যালগরিদমের ধারণাটি হ্যাশিংয়ের উপর ভিত্তি করে তৈরি।


The argument powerlist is used in parallel recursion.

সমান্তরাল পুনরাবৃত্তিতে আর্গুমেন্ট পাওয়ারলিস্ট ব্যবহার করা হয়।


The case analysis is based on the length of the argument powerlist.

কেস বিশ্লেষণ আর্গুমেন্ট পাওয়ারলিস্টের দৈর্ঘ্যের উপর ভিত্তি করে করা হয়।


We adopt the pattern matching scheme of ML and Miranda.

আমরা ML এবং মিরান্ডার প্যাটার্ন ম্যাচিং স্কিম গ্রহণ করি।


Deconstruction, in general, uses the operators | and ./.

সাধারণভাবে, ডিকনস্ট্রাকশন অপারেটর | এবং ./ ব্যবহার করে।


It can be shown that the two proposed definitions of rev are equivalent.

এটি দেখানো যেতে পারে যে rev-এর দুটি প্রস্তাবিত সংজ্ঞা সমতুল্য।


Scalar functions operate on scalars and return a scalar value.

স্কেলার ফাংশনগুলি স্কেলারগুলিতে কাজ করে এবং একটি স্কেলার মান প্রদান করে।


We coerce the application of f to a powerlist by applying f pointwise.

আমরা f-এর প্রয়োগকে একটি পাওয়ারলিস্টে পরিণত করি f-কে পয়েন্টওয়াইজ প্রয়োগ করে।


A scalar function that operates on two arguments will often be written as an infix operator.

দুটি আর্গুমেন্টের উপর কাজ করে এমন একটি স্কেলার ফাংশন প্রায়শই একটি ইনফিক্স অপারেটর হিসাবে লেখা হবে।


Scalar functions commute with both | and ./.

স্কেলার ফাংশনগুলি | এবং ./ উভয়ের সাথেই বিনিময়যোগ্য।


The base case of a powerlist is a singleton list, not an empty list.

একটি পাওয়ারলিস্টের বেস কেস হল একটি একক তালিকা, খালি তালিকা নয়।


Every non-singleton powerlist can be written in either form in a unique manner.

প্রতিটি নন-সিঙ্গেলটন পাওয়ারলিস্ট একটি অনন্য পদ্ধতিতে উভয় আকারে লেখা যেতে পারে।


A simple way to view p|q=L is that if the elements of L are indexed by n-bit strings.

p|q=L দেখার একটি সহজ উপায় হল যদি L-এর উপাদানগুলিকে n-বিট স্ট্রিং দ্বারা সূচিবদ্ধ করা হয়।


This flexibility is essential because many parallel algorithms exploit both forms of construction.

এই নমনীয়তা অপরিহার্য কারণ অনেক সমান্তরাল অ্যালগরিদম উভয় ধরনের নির্মাণকে কাজে লাগায়।


The length of a powerlist is a power of 2.

একটি পাওয়ারলিস্টের দৈর্ঘ্য 2 এর ঘাত।


These laws can be derived by suitably defining tie and zip.

এই নিয়মগুলি উপযুক্তভাবে টাই এবং জিপ সংজ্ঞায়িত করে উদ্ভূত হতে পারে।


Law L0 is often used in proving base cases of algebraic identities.

বীজগণিতীয় অভিন্নতার ভিত্তি প্রমাণ করতে প্রায়শই L0 নিয়ম ব্যবহার করা হয়।


Most proofs on powerlists are by induction on the length, depth or shape of the list.

পাওয়ারলিস্টের উপর বেশিরভাগ প্রমাণ তালিকার দৈর্ঘ্য, গভীরতা বা আকারের উপর আবেশন দ্বারা হয়।


The shape and the type of the scalar elements define the structure of a powerlist completely.

আকার এবং স্কেলার উপাদানগুলির প্রকার একটি পাওয়ারলিস্টের গঠন সম্পূর্ণরূপে সংজ্ঞায়িত করে।


We show a few small algorithms on powerlists.

আমরা পাওয়ারলিস্টের উপর কয়েকটি ছোট অ্যালগরিদম দেখাই।


These include such well-known examples as the Fast Fourier Transform and Batcher sorting schemes.

এগুলির মধ্যে রয়েছে ফাস্ট ফুরিয়ার ট্রান্সফর্ম এবং ব্যাচার সর্টিং স্কিমের মতো সুপরিচিত উদাহরণ।


The algorithms in this paper use an inductive theorem prover.

এই প্রবন্ধে ব্যবহৃত অ্যালগরিদমগুলি একটি আরোহী উপপাদ্য প্রমাণকারী ব্যবহার করে।


They are extending their theorem prover.

তারা তাদের উপপাদ্য প্রমাণকারীর প্রসার ঘটাচ্ছে।


One of the fundamental problems is devising compilation strategies.

সংকলন কৌশল তৈরি করা একটি মৌলিক সমস্যা।


The architecture that is the closest conceptually is the hypercube.

ধারণাগতভাবে সবচেয়ে কাছের আর্কিটেকচারটি হল হাইপারকিউব।


Combinational circuit verification is an area where powerlist notation may be employed.

সংমিশ্রণমূলক সার্কিট যাচাইকরণ এমন একটি ক্ষেত্র যেখানে পাওয়ারলিস্ট স্বরলিপি ব্যবহার করা যেতে পারে।


Adams has proved the correctness of adder circuits.

অ্যাডামস যোগকারী সার্কিটগুলির সঠিকতা প্রমাণ করেছেন।


A ripple-carry adder is typically easy to describe.

একটি রিপল-ক্যারি অ্যাডার সাধারণত বর্ণনা করা সহজ।


A carry-lookahead adder is much more difficult.

একটি কেরি-লুকআহেড অ্যাডার আরও কঠিন।


He obtains a succinct description of the carry-lookahead circuit.

তিনি কেরি-লুকআহেড সার্কিটের একটি সংক্ষিপ্ত বিবরণ পান।


স্বেচ্ছাধীন দৈর্ঘ্যের পাওয়ারলিস্ট


Steele suggests padding enough "dummy" elements.

স্টিলের মতে যথেষ্ট 'ডামি' উপাদান যোগ করা উচিত।


This scheme retains the simple algebraic laws.

এই স্কিমটি সাধারণ বীজগণিত সূত্রগুলি বজায় রাখে।


Another approach is based on the observation.

অন্য একটি পদ্ধতি এই পর্যবেক্ষণের উপর ভিত্তি করে তৈরি।


For instance, the following function, rev, reverses a list.

উদাহরণস্বরূপ, নিম্নলিখিত ফাংশন, rev, একটি তালিকা বিপরীত করে।


The last line of this definition applies to a non-singleton list.

এই সংজ্ঞাটির শেষ লাইনটি একটি নন-সিঙ্গেলটন তালিকার ক্ষেত্রে প্রযোজ্য।


The notation proposed in this paper addresses only a small aspect.

এই প্রবন্ধে প্রস্তাবিত স্বরলিপিটি শুধুমাত্র একটি ছোট দিক নিয়ে আলোচনা করে।


Powerlists have proved to be highly successful.

পাওয়ারলিস্টগুলি অত্যন্ত সফল প্রমাণিত হয়েছে।


Parallel and sequential computations are interleaved.

সমান্তরাল এবং ক্রমিক গণনাগুলি একত্রিত হয়।


Gaussian elimination represents a mixture.

গাউসীয় বিলোপ একটি মিশ্রণ উপস্থাপন করে।


The powerlist notation can be integrated into a language.

পাওয়ারলিস্ট স্বরলিপি একটি ভাষার সাথে একত্রিত করা যেতে পারে।


The prefix sum is of fundamental importance in parallel computing.

সমান্তরাল কম্পিউটিং-এ প্রিফিক্স যোগফল মৌলিক গুরুত্বের।


We will give a formal definition of prefix sum later in this section.

আমরা এই বিভাগে পরে প্রিফিক্স যোগফলের একটি আনুষ্ঠানিক সংজ্ঞা দেব।


Initially, processor i holds the list element L i, for all i.

শুরুতে, প্রসেসর i সমস্ত i-এর জন্য তালিকা উপাদান L i ধরে রাখে।


The connections among the processors at different levels depict data transmissions.

বিভিন্ন স্তরের প্রসেসরগুলির মধ্যে সংযোগগুলি ডেটা ট্রান্সমিশন চিত্রিত করে।


Each processor updates its own data, d, to r ⊕ d where r is the data it receives.

প্রতিটি প্রসেসর তার নিজস্ব ডেটা, d, r ⊕ d-তে আপডেট করে যেখানে r হল এটি যে ডেটা পায়।


It can be shown that after completion of the computation at level (log 2 (len L)), processor i holds the i th element of (ps L).

এটি দেখানো যেতে পারে যে (log 2 (len L)) স্তরে গণনার সমাপ্তির পরে, প্রসেসর i (ps L)-এর i তম উপাদানটি ধরে রাখে।


Another scheme, due to Ladner and Fischer, first applies ⊕ to adjacent elements x 2i, x 2i+1 to compute the list.

আরেকটি স্কিম, ল্যাডনার এবং ফিশারের কারণে, প্রথমে তালিকাটি গণনা করার জন্য সংলগ্ন উপাদান x 2i, x 2i+1-এর সাথে ⊕ প্রয়োগ করে।


This list has half as many elements as the original list.

এই তালিকায় মূল তালিকার অর্ধেক উপাদান রয়েছে।


Both schemes for prefix computation are inherently recursive.

প্রিফিক্স গণনার উভয় স্কিমই সহজাতভাবে পুনরাবৃত্তিমূলক।


We introduce an operator in terms of which the prefix sum problem can be defined.

আমরা একটি অপারেটর চালু করি যার শর্তে প্রিফিক্স যোগফলের সমস্যাটি সংজ্ঞায়িত করা যেতে পারে।


First, we postulate that 0 is the left identity element of ⊕, i.e., 0 ⊕ x = x.

প্রথমত, আমরা ধরে নিই যে 0 হল ⊕-এর বাম পরিচয় উপাদান, অর্থাৎ, 0 ⊕ x = x।


For a powerlist p, let p * be the powerlist obtained by shifting p to the right by one.

একটি পাওয়ারলিস্ট p-এর জন্য, p * হল সেই পাওয়ারলিস্ট যা p-কে এক ঘর ডানদিকে সরিয়ে পাওয়া যায়।


This equation has a unique solution in z, because z 0 = (z * ) 0 ⊕ L 0 = 0 ⊕ L 0 = L 0, and z i+1 = z i ⊕ L i+1, 0 ≤ i < (len L) − 1

z-এ এই সমীকরণের একটি অনন্য সমাধান রয়েছে, কারণ z 0 = (z * ) 0 ⊕ L 0 = 0 ⊕ L 0 = L 0, এবং z i+1 = z i ⊕ L i+1, 0 ≤ i < (len L) − 1


We define (ps L) to be the unique solution of (DE), and we call (DE) the defining equation for (ps L).

আমরা (ps L)-কে (DE)-এর অনন্য সমাধান হিসাবে সংজ্ঞায়িত করি এবং আমরা (DE)-কে (ps L)-এর জন্য সংজ্ঞায়িত সমীকরণ বলি।


The operator ⊕ is not necessarily commutative.

অপারেটর ⊕ সবসময় বিনিময়যোগ্য নাও হতে পারে।


The operator ⊕ is scalar; so, it commutes with ./.

অপারেটর ⊕ হল স্কেলার; সুতরাং, এটি ./ এর সাথে বিনিময়যোগ্য।


The uniqueness of the solution of (DE) can be proved entirely within the powerlist algebra.

(DE)-এর সমাধানের অনন্যতা সম্পূর্ণরূপে পাওয়ারলিস্ট বীজগণিতের মধ্যে প্রমাণ করা যেতে পারে।


প্রিফিক্স যোগফলের গণনা


The functions ps (simpleprefixsum) defines the scheme of Figure 8.4.

ps (simpleprefixsum) ফাংশনটি চিত্র 8.4-এর স্কিম সংজ্ঞায়িত করে।


We can prove the correctness of sps and lf by showing that the function ps satisfies the equations defining each of these functions.

আমরা দেখাতে পারি যে ps ফাংশনটি এই ফাংশনগুলির প্রত্যেকটিকে সংজ্ঞায়িত করে এমন সমীকরণগুলি পূরণ করে sps এবং lf-এর সঠিকতা প্রমাণ করতে পারি।