এসোসিয়েটিভিটি (অপারেটরের জন্য) কী এবং এটি কেন গুরুত্বপূর্ণ?
আপডেট হয়েছে: অপারেটর এসোসিয়েটিভিটি
এসোসিয়েটিভিটি (অপারেটরের জন্য) কী এবং এটি কেন গুরুত্বপূর্ণ?
আপডেট হয়েছে: অপারেটর এসোসিয়েটিভিটি
উত্তর:
অপারেটরগুলির জন্য, এসোসিয়েটিভিটির অর্থ হ'ল যখন একই অপারেটরটি একটি সারিতে উপস্থিত হয়, তখন আমরা প্রথমে কোন অপারেটরের উপস্থিতি প্রয়োগ করি apply নীচে, Q
অপারেটর হতে দিন
a Q b Q c
যদি Q
সহযোগী বামে থাকে, তবে এটি হিসাবে মূল্যায়ন করে
(a Q b) Q c
এবং যদি এটি সঠিক সাহসী হয়, তবে এটি হিসাবে মূল্যায়ন করে
a Q (b Q c)
এটি গুরুত্বপূর্ণ, যেহেতু এটি একটি অভিব্যক্তির অর্থ পরিবর্তন করে। পূর্ণসংখ্যার গাণিতিক সহ বিভাগ অপারেটরটিকে বিবেচনা করুন, যা সাহচর্য বাকী রয়েছে
4 / 2 / 3 <=> (4 / 2) / 3 <=> 2 / 3 = 0
যদি এটি সঠিক সাহসী হয় তবে এটি একটি অপরিজ্ঞাত প্রকাশের মূল্যায়ন করবে, যেহেতু আপনি শূন্য দ্বারা ভাগ করবেন
4 / 2 / 3 <=> 4 / (2 / 3) <=> 4 / 0 = undefined
expr -> expr + term;
, বাম মিশ্রণমূলক এবং expr -> term + expr
ডান এসোসিয়েটিভ।
a * b / c
সংশ্লেটিভ হবে কীভাবে মূল্যায়ন *
করবে /
? তারপরে একটি দ্বন্দ্ব আছে। সুতরাং আমি মনে করি যে আপনি যদি একাধিক অপারেটরগুলি কভার করতে চান তবে "যখন একই নজির এবং সাহচর্য সহ অপারেটরগুলি" বলা দরকার।
তিন ধরণের সাহচর্য রয়েছে:
প্রোগ্রামিং ভাষাতে অপারেশন অর্ডার
গণিতে অ্যাসোসিয়েটিভ সম্পত্তি হ'ল সংযোজন (+) হিসাবে অপারেটরগুলির একটি সম্পত্তি। এই বৈশিষ্ট্যটি আপনাকে কোনও বিবরণের মান পরিবর্তন না করেই প্রথম বন্ধনী পুনরায় সাজানোর অনুমতি দেয়, যেমন:
(a + b) + c = a + (b + c)
প্রোগ্রামিং ভাষায়, অপারেটরের সাহচর্যতা (বা স্থিরতা) এমন একটি সম্পত্তি যা নির্ধারণ করে যে একই অগ্রাধিকারের অপারেটরগুলি বন্ধনীগুলির অনুপস্থিতিতে কীভাবে দলবদ্ধ করা হয় ; অর্থাত প্রতিটি অপারেটরকে কোন ক্রমে মূল্যায়ন করা হয়। এটি প্রোগ্রামিং ভাষার মধ্যে পার্থক্য করতে পারে।
সিপিইউ ক্যাশে, অস্যাসিয়েটিভিটি পারফরম্যান্স অনুকূলকরণের একটি পদ্ধতি।
সরল !!
Left Associative means we evaluate our expression from left to right
Right Associative means we evaluate our expression from right to left
আমরা জানি *, /, এবং% এর একই প্রাধান্য রয়েছে তবে সাহচর্য অনুসারে, উত্তর পরিবর্তন হতে পারে:
উদাহরণস্বরূপ: আমাদের এক্সপ্রেশন: 4 * 8/2% 5
Left associative: (4 * 8) / 2 % 5 ==> (32 / 2) % 5 ==> 16 % 5 ==> 1
Right associative: 4 * 8 /(2 % 5) ==> 4 * ( 8 / 2) ==> 4 * 4 ==> 16
2 % 5
মূল্যায়ন করুন 2
, না 0
।
এটি একই নজির অপারেটরদের জন্য মূল্যায়ন ক্রম। বাম দিক থেকে ডান বা বাম দিক থেকে অর্ডার সম্পর্কিত বিষয়গুলি। জন্য
3 - 2 - 1
যদি এটি বাম থেকে ডানদিকে যায় তবে তা হয়
(3 - 2) - 1
এবং 0 হয় যদি এটি বাম থেকে ডান হয় তবে তা হয়
3 - (2 - 1)
এবং এটি ২ হয় most
পরিস্থিতিটি 3 - 2 - 1
তুচ্ছ মনে হতে পারে, যদি দাবিটি হয়, "অবশ্যই আমরা এটি বাম থেকে ডানে করি"। তবে অন্যান্য ক্ষেত্রে যেমন রুবিতে বা নোডজেএসে করা হয়েছে:
$ irb
2.6.3 :001 > 2 ** 3 ** 2
=> 512
**
অপারেটর "ক্ষমতায়" হয়। সাহচর্যটি ডান থেকে বামে। এবং এটা করা হয়
2 ** (3 ** 2)
যা এর 2 ** 9
অর্থ 512
, পরিবর্তে
(2 ** 3) ** 2
যা 8 ** 2
, অর্থাৎ 64
।
যদি আপনি "অপারেটর এসোসিয়েটিভিটি" উল্লেখ করে থাকেন - এটি কীভাবে কোনও ভাষা নির্ধারণ করে যে বন্ধনীর অভাবে একই অগ্রাধিকারের অপারেটরগুলিকে কীভাবে শ্রেণিবদ্ধ করা হয়।
উদাহরণস্বরূপ, সি-ভিত্তিক ভাষাগুলিতে + এবং - অপারেটরগুলির একই প্রাধান্য রয়েছে। আপনি যখন কোনও অভিব্যক্তি লিখেন যা উভয় ব্যবহার করে (প্রথম বন্ধনী ব্যতীত) সংকলককে অবশ্যই নির্ধারণ করতে হবে যে তাদের মধ্যে কোন ক্রম রয়েছে।
আপনি 12 - 5 + 3 লিখলে সম্ভাব্য মূল্যায়নের অন্তর্ভুক্ত:
আপনি যে ক্রমটিতে অভিব্যক্তিটি মূল্যায়ন করেছেন তার উপর নির্ভর করে আপনি বিভিন্ন ফলাফল পেতে পারেন। সি-ভিত্তিক ভাষাগুলিতে, এবং - এর সাহচর্য রেখে গেছে যার অর্থ উপরের প্রকাশটি প্রথম কেস হিসাবে মূল্যায়ন করবে।
সমস্ত ভাষার প্রাধান্য এবং সাহচর্য উভয়ের জন্য দৃ strongly়ভাবে সংজ্ঞায়িত নিয়ম রয়েছে। আপনি এখানে সি # এর নিয়মাবলী সম্পর্কে আরও শিখতে পারেন । অপারেটর সাধারণ ধারণা associativity এবং প্রাধান্য ভাল উইকিপিডিয়ায় আচ্ছাদিত করা হয়।
আমি ধরে নিচ্ছি আপনি বোঝাচ্ছেন অপারেটর সাহচর্যতা ...
এটি অপারেটরের কাছে অপেরেন্ডসকে বাঁধাইয়ের ক্রম। মূলত:
a - b + c
হিসাবে মূল্যায়ন করা যেতে পারে (ধরে নেওয়া - এবং + একই প্রাধান্য রয়েছে):
((a - b) + c) বা,
(a - (b + c))
অপারেটরগুলি যদি সাহসী বামে থাকে (অবিলম্বে বাম অপারেণ্ডে আবদ্ধ করুন), এটি প্রথম হিসাবে মূল্যায়ন করা হবে। যদি তারা সঠিক সাহসী হয় তবে এটি দ্বিতীয় হিসাবে মূল্যায়ন করা হবে।
আমরা সকলেই জানি যে প্রাধান্য গুরুত্বপূর্ণ তবে একটি অভিব্যক্তির অর্থ ব্যাখ্যা করার ক্ষেত্রে সাহচর্যতা। অপারেটরগুলির একটি সত্যই সাধারণ পরিচয়ের চেষ্টা করুন ।
অ্যাসোসিয়েটিভিটি প্রোগ্রামিং ভাষার ধারণাগুলিতে গণনার ক্রমের অধীনে আসে। গণনার ক্রমটি অভিব্যক্তির অর্থ নির্ধারণ করে। এর দুটি প্রধান নিয়ম রয়েছে,
- প্রাধান্য বিধি
- সমিতি বিধি
অগ্রাধিকার বিধিগুলি ক্রমের সংজ্ঞা দেয় যাতে বিভিন্ন ধরণের "সংলগ্ন" অপারেটরদের মূল্যায়ন করা হয়। প্রতিটি প্রোগ্রামিং ভাষার অপারেটর সম্পর্কিত নিজস্ব অপারেটর অগ্রাধিকার সারণী থাকে।
সাহচর্যে ফিরে আসছি,
এটি একই নজির সহ সংলগ্ন ক্রিয়াকলাপ কার্যকর করার ক্রমকে সংজ্ঞায়িত করে। এর 3 টি স্বাদ রয়েছে,
বাম-সাহচর্যতা
ডান-অ্যাসোসিয়েটিভিটি
নন-অ্যাসোসিয়েটিভিটি
যদি কোনও অপারেটর বাম-সহযোগী হয় তবে এটি বাম থেকে ডানে একইভাবে মূল্যায়ন করে যদি এটি ডান-অ্যাসোসিয়েটিভ হয় তবে এটি ডান থেকে বামে মূল্যায়ন করে।