আমার বন্ধু বলেছিল যে "মোড" এবং "বাকী" এর মধ্যে পার্থক্য রয়েছে।
যদি তা হয় তবে সি এবং সি ++ এর মধ্যে এই পার্থক্যগুলি কী কী? '%' এর অর্থ সি'কে "মোড" বা "রিম" হয়?
আমার বন্ধু বলেছিল যে "মোড" এবং "বাকী" এর মধ্যে পার্থক্য রয়েছে।
যদি তা হয় তবে সি এবং সি ++ এর মধ্যে এই পার্থক্যগুলি কী কী? '%' এর অর্থ সি'কে "মোড" বা "রিম" হয়?
উত্তর:
মডুলাস এবং বাকীগুলির মধ্যে পার্থক্য রয়েছে। উদাহরণ স্বরূপ:
-21
গেলিক ভাষার 4
হল 3
কারণ -21 + 4 x 6
হয় 3
।
কিন্তু -21
বিভক্ত দ্বারা 4
দেয় -5
একটি অবশিষ্টাংশ সঙ্গে -1
।
ইতিবাচক মানগুলির জন্য, কোনও পার্থক্য নেই।
%
সবসময় বাকি ছিল, কিন্তু এটা হতে পারে এছাড়াও , মডুলাস (অর্থাত সবসময় ইতিবাচক) হতে কারণ C89 মধ্যে বিভাজন পূর্ণসংখ্যা তাই C89 মধ্যে 0. প্রতি পরিবর্তে নেতিবাচক অনন্ত প্রতি বৃত্তাকার করার অনুমতি ছিল -5 / 2
হতে পারে -2
বাকি সঙ্গে -1
, অথবা -3
বাকি সঙ্গে 1
, বাস্তবায়ন শুধু ডকুমেন্ট যা করতে হয়েছিল। C99 নমনীয়তা সরিয়ে ফেলেছে, তাই এখন -5 / 2
সর্বদা -2
।
-21
গেলিক ভাষার 4
হল 3
? হিসাব কেন -21 + 4 x 6
?
-21 + 4 x 6
0 থেকে 3 এর মধ্যে
'%' এর অর্থ সি'কে "মোড" বা "রিম" হয়?
সি, %
হয় বাকি 1 ।
...,
/
অপারেটরের ফলাফলটি বর্ধিত যে কোনও ভগ্নাংশের সাথে বীজগণিতের ভাগফল হয় ... (এটি প্রায়শই "শূন্যের দিকে কাটা" বলা হয়)) C11dr §6.5.5 6অপারেটরের অপারেন্ডসের
%
পূর্ণসংখ্যার প্রকার থাকবে। সি 11 ডিআর §6.5.5 2
/
অপারেটরের ফলাফলটি দ্বিতীয় দ্বারা প্রথম অপারেন্ডের বিভাগ থেকে ভাগফল হয়;%
অপারেটরের ফলাফল বাকী ... C11dr §6.5.5 5
"মোড" এবং "অবশিষ্ট" এর মধ্যে পার্থক্য কী?
সি "মোড" সংজ্ঞায়িত করে না, যেমন ইউক্লিডিয়ান বিভাগ বা অন্যান্য মডুলোর ব্যবহৃত ইন্টিজার মডুলাস ফাংশন । "ইউক্লিডিয়ান মোড" নেতিবাচক a%b
হলে সি এর অপারেশন থেকে আলাদা a
হয়।
// a % b
7 % 3 --> 1
7 % -3 --> 1
-7 % 3 --> -1
-7 % -3 --> -1
ইউক্লিডিয়ান বিভাগ হিসাবে মডুলো
7 modulo 3 --> 1
7 modulo -3 --> 1
-7 modulo 3 --> 2
-7 modulo -3 --> 2
প্রার্থী মডুলো কোড:
int modulo_Euclidean(int a, int b) {
int m = a % b;
if (m < 0) {
// m += (b < 0) ? -b : b; // avoid this form: it is UB when b == INT_MIN
m = (b < 0) ? m - b : m + b;
}
return m;
}
ভাসমান পয়েন্ট সম্পর্কে দ্রষ্টব্য: double fmod(double x, double y)
"fmod" বলা হলেও এটি ইউক্লিডিয়ান বিভাগ "মোড" এর মতো নয়, তবে সি পূর্ণসংখ্যার অবশিষ্টাংশের মতো:
fmod
ফাংশন গনা এর ফ্লোটিং পয়েন্ট বাকিx/y
। সি 11 ডিআর §7.12.10.1 2
fmod( 7, 3) --> 1.0
fmod( 7, -3) --> 1.0
fmod(-7, 3) --> -1.0
fmod(-7, -3) --> -1.0
অসম্পূর্ণন : সি এরও একই নামযুক্ত ফাংশন রয়েছে double modf(double value, double *iptr)
যা যুক্তির মানকে অবিচ্ছেদ্য এবং ভগ্নাংশের অংশে বিভক্ত করে, যার প্রত্যেকটিরই একই রকম এবং যুক্তির মতো চিহ্ন রয়েছে sign নামটির সাদৃশ্য বাদে এখানে "মোড" আলোচনার সাথে এর তেমন যোগসূত্র নেই।
1 সি 99 এর আগে, সি এর সংজ্ঞাটি বিভাগ থেকে বাকি%
ছিল , তারপরে নেগেটিভ কোটেন্টগুলি "শূন্যের দিকে ছাঁটাই" না দিয়ে গোলাকার হয়ে যায়। দেখুন কেন আপনি সি 98 এ পূর্ণসংখ্যা বিভাগের জন্য বিভিন্ন মান পাবেন? । সুতরাং কিছু প্রাক-সি 99 সংকলন সহ কোড ইউক্লিডিয়ান বিভাগ "মোড" এর মতোই কাজ করতে পারে। উপরে এই বিকল্প পুরোনো স্কুল বাকি খুব দিয়ে ইচ্ছা হবে।/
%
modulo_Euclidean()
মডুলাস, আপনি যেমন উল্লেখ করছেন গাণিতিকগুলিতে হ'ল গাণিতিক বিভাগের পরে বামে বা অবশিষ্ট মান। এটি সাধারণত বাকী হিসাবে পরিচিত। % আনুষ্ঠানিকভাবে সি / সি ++ এর অবশিষ্ট অপারেটর। উদাহরণ:
7 % 3 = 1 // dividend % divisor = remainder
এই% অপারেশনে নেতিবাচক ইনপুটগুলি কীভাবে চিকিত্সা করা যায় তা আলোচনার জন্য বাকি রয়েছে। আধুনিক সি এবং সি ++ এই অপারেশনের জন্য একটি স্বাক্ষরিত অবশিষ্ট মূল্য উত্পাদন করে যেখানে ফলাফলের চিহ্নটি সর্বদা বিভাজক ইনপুটটির চিহ্নটিকে বিবেচনা না করে লভ্যাংশ ইনপুটটির সাথে মেলে ।
সি এবং সি ++ এবং অনেক ভাষায়, %
বাকিগুলি মডিউলাস অপারেটর নয়।
উদাহরণস্বরূপ অপারেশনে -21 / 4
পূর্ণসংখ্যা অংশটি হয় -5
এবং দশমিক অংশ হয় -.25
। বাকী অংশটি বিভাজক অংশের দ্বিগুণ হয়, তাই আমাদের অবশিষ্ট অংশ -1
। জাভাস্ক্রিপ্ট বাকি অপারেটর ব্যবহার করে এবং এটি নিশ্চিত করে
console.log(-21 % 4 == -1);
মডুলাস অপারেটরটি আপনার "ঘড়ি" থাকার মতো। যথাক্রমে 12 টা, 3 টা, 6 টা, এবং 9 টা বাজে পজিশনে যথাক্রমে 0, 1, 2, এবং 3 সহ একটি বৃত্তটি কল্পনা করুন। ঘড়ির কাঁটা-বিজ্ঞতার কাছাকাছি সময়ে বারের মতো পদক্ষেপ নেওয়া আমাদের মডুলাস অপারেশনের ফলে বা আমাদের উদাহরণ হিসাবে একটি নেতিবাচক ভাগফল, পাল্টা-ঘড়ির কাঁটার দিক দিয়ে, ফলন দেয় 3।
দ্রষ্টব্য: মডুলাস সর্বদা বিভাজকের হিসাবে একই চিহ্ন এবং ভাগফল হিসাবে একই চিহ্নটি অবশিষ্ট থাকে। বিভাজন যুক্ত এবং অবশিষ্টাংশ অন্তত একটি নেতিবাচক হলে যোগ করা মডুলাস দেয়।
গণিতে মডুলো অপারেশনের ফলাফল ইউক্যালিডিয়ান বিভাগের বাকী অংশ। তবে অন্যান্য সম্মেলনগুলিও সম্ভব। কম্পিউটার এবং ক্যালকুলেটরগুলির সংখ্যা সংরক্ষণ এবং প্রতিনিধিত্ব করার বিভিন্ন উপায় রয়েছে; সুতরাং তাদের মডুলো অপারেশন সংজ্ঞা প্রোগ্রামিং ভাষা এবং / বা অন্তর্নিহিত হার্ডওয়্যার উপর নির্ভর করে।
7 modulo 3 --> 1
7 modulo -3 --> -2
-7 modulo 3 --> 2
-7 modulo -3 --> -1
0 ≤ r < |b|
যা ওরফে বাকি অর্থ "মডিউল অপারেশন।" সর্বদা সর্বনিম্ন ০. আপনি কী সংজ্ঞা ব্যবহার করছেন -২ এবং -১ এ ফলাফল?
a%b
এবং a modulo b
যখন একই অর্থ আছে a,b
ইতিবাচক। সি 99 %
negative ণাত্মক মানগুলির সাথে সুনির্দিষ্টভাবে সংজ্ঞা দেয় । সি এই "বাকি।" কল মডিউলো "নেগেটিভ মান বিষয়ে বিশ্বের বিভিন্ন নির্ভরশীল সি বৈশিষ্ট শুধুমাত্র ব্যবহার করে।" মডিউল "পজিটিভ সংখ্যার প্রেক্ষাপটে।