"মোড" এবং "অবশিষ্ট" এর মধ্যে পার্থক্য কী?


133

আমার বন্ধু বলেছিল যে "মোড" এবং "বাকী" এর মধ্যে পার্থক্য রয়েছে।

যদি তা হয় তবে সি এবং সি ++ এর মধ্যে এই পার্থক্যগুলি কী কী? '%' এর অর্থ সি'কে "মোড" বা "রিম" হয়?


2
এটি সম্ভবত নেতিবাচক অপারেশনগুলির জন্য অ-সংজ্ঞায়িত।
বেসিল স্টারিনকিভিচ

1
আমি সি ব্যক্তি নই :( সুতরাং উত্তর বাক্সের মধ্যে সত্যই এর উত্তর দিতে পারব না। তবে দয়া করে এই নিবন্ধটি একবার দেখুন: :)
বোনকোডিগো

1
% বাকি। > - উত্তর বিস্তারিত জানতে এখানে blogs.msdn.com/b/ericlippert/archive/2011/12/05/...
Wim

1
আপনি শর্তাবলীর অর্থ কী তা সুনির্দিষ্টভাবে সংজ্ঞায়িত না করা পর্যন্ত প্রশ্নের অর্থ কিছুই নয়।
ডেভিড হেফারনান

14
@ ডেভিড: প্রশ্নটি শর্তগুলির অর্থ সম্পর্কে। আপনি যদি বলেন যে প্রশ্নটির কোনও অর্থ নেই, যদিও বেশ কয়েক জন ব্যক্তি প্রশ্নকর্তা যেভাবে এটি বোঝে সেভাবে বোঝে, তবে আমি মনে করি আপনি "অর্থ" ;-) শব্দটির দ্বারা কী বোঝাতে চেয়েছেন আপনাকে আরও নির্দিষ্ট হতে হবে
স্টিভ জেসোপ

উত্তর:


140

মডুলাস এবং বাকীগুলির মধ্যে পার্থক্য রয়েছে। উদাহরণ স্বরূপ:

-21গেলিক ভাষার 4হল 3কারণ -21 + 4 x 6হয় 3

কিন্তু -21বিভক্ত দ্বারা 4দেয় -5একটি অবশিষ্টাংশ সঙ্গে -1

ইতিবাচক মানগুলির জন্য, কোনও পার্থক্য নেই।


22
% এর অর্থ সি এর মধ্যে
রেম

22
@Jinxiao: C89 এটা ছিল বাস্তবায়ন-সংজ্ঞায়িত %সবসময় বাকি ছিল, কিন্তু এটা হতে পারে এছাড়াও , মডুলাস (অর্থাত সবসময় ইতিবাচক) হতে কারণ C89 মধ্যে বিভাজন পূর্ণসংখ্যা তাই C89 মধ্যে 0. প্রতি পরিবর্তে নেতিবাচক অনন্ত প্রতি বৃত্তাকার করার অনুমতি ছিল -5 / 2হতে পারে -2বাকি সঙ্গে -1, অথবা -3বাকি সঙ্গে 1, বাস্তবায়ন শুধু ডকুমেন্ট যা করতে হয়েছিল। C99 নমনীয়তা সরিয়ে ফেলেছে, তাই এখন -5 / 2সর্বদা -2
স্টিভ জেসোপ

2
আসলে, মডুলাস কী তা পরিষ্কার নয়। প্রসঙ্গ এবং ভাষার উপর নির্ভর করে অনেক আলাদা সংজ্ঞা রয়েছে বলে মনে হয়। Modulo_operation সম্পর্কে উইকিপিডিয়া নিবন্ধটি দেখুন। কিছু প্রসঙ্গে, এটি আসলে বাকী হিসাবে একই।
রুডি ভেলথুইস

9
প্রথম গণনার পদক্ষেপগুলি কি কেউ ব্যাখ্যা করতে পারেন? কিভাবে -21গেলিক ভাষার 4হল 3? হিসাব কেন -21 + 4 x 6?
ওজ এড্রি

13
@ ওজেড্রি কিছু নম্বর মড 4 পাওয়ার জন্য, আপনি 0 এবং 3 এর মধ্যে একটি সংখ্যা পেতে 4 এর সংখ্যার পূর্ণসংখ্যার যোগ করুন যা -21-এর জন্য, সেই পূর্ণসংখ্যা 6 কারণ -21 + 4 x 60 থেকে 3 এর মধ্যে
ডেভিড শোয়ার্জ

47

'%' এর অর্থ সি'কে "মোড" বা "রিম" হয়?

সি, %হয় বাকি 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()


1
সিতে ইউক্লিডিয়ান বিভাগ এবং মডুলো ফাংশন বাস্তবায়নের জন্য কম্পিউটার বিজ্ঞানীদের জন্য বিভাগ এবং মডুলাস দেখুন । এটি দ্রুত চালিত হতে পারে যদি আপনি জানেন কেবল আপনার লভ্যাংশ নেতিবাচক হতে পারে তবে আপনার বিভাজক সর্বদা ইতিবাচক থাকে: Godbolt.org/g/63UqJo । সম্পর্কিত: অ x- নেম নেতিবাচক মডুলোর জন্য জিজ্ঞাসা করা একটি x86 asm প্রশ্ন
পিটার কর্ডেস

ফরম অপারেটরের স্বাভাবিক সংজ্ঞা আরো ভালো হল:
মাইক Housky

2

মডুলাস, আপনি যেমন উল্লেখ করছেন গাণিতিকগুলিতে হ'ল গাণিতিক বিভাগের পরে বামে বা অবশিষ্ট মান। এটি সাধারণত বাকী হিসাবে পরিচিত। % আনুষ্ঠানিকভাবে সি / সি ++ এর অবশিষ্ট অপারেটর। উদাহরণ:

7 % 3 = 1  // dividend % divisor = remainder

এই% অপারেশনে নেতিবাচক ইনপুটগুলি কীভাবে চিকিত্সা করা যায় তা আলোচনার জন্য বাকি রয়েছে। আধুনিক সি এবং সি ++ এই অপারেশনের জন্য একটি স্বাক্ষরিত অবশিষ্ট মূল্য উত্পাদন করে যেখানে ফলাফলের চিহ্নটি সর্বদা বিভাজক ইনপুটটির চিহ্নটিকে বিবেচনা না করে লভ্যাংশ ইনপুটটির সাথে মেলে


1

সি এবং সি ++ এবং অনেক ভাষায়, %বাকিগুলি মডিউলাস অপারেটর নয়।

উদাহরণস্বরূপ অপারেশনে -21 / 4পূর্ণসংখ্যা অংশটি হয় -5এবং দশমিক অংশ হয় -.25। বাকী অংশটি বিভাজক অংশের দ্বিগুণ হয়, তাই আমাদের অবশিষ্ট অংশ -1। জাভাস্ক্রিপ্ট বাকি অপারেটর ব্যবহার করে এবং এটি নিশ্চিত করে

console.log(-21 % 4 == -1);

মডুলাস অপারেটরটি আপনার "ঘড়ি" থাকার মতো। যথাক্রমে 12 টা, 3 টা, 6 টা, এবং 9 টা বাজে পজিশনে যথাক্রমে 0, 1, 2, এবং 3 সহ একটি বৃত্তটি কল্পনা করুন। ঘড়ির কাঁটা-বিজ্ঞতার কাছাকাছি সময়ে বারের মতো পদক্ষেপ নেওয়া আমাদের মডুলাস অপারেশনের ফলে বা আমাদের উদাহরণ হিসাবে একটি নেতিবাচক ভাগফল, পাল্টা-ঘড়ির কাঁটার দিক দিয়ে, ফলন দেয় 3।

দ্রষ্টব্য: মডুলাস সর্বদা বিভাজকের হিসাবে একই চিহ্ন এবং ভাগফল হিসাবে একই চিহ্নটি অবশিষ্ট থাকে। বিভাজন যুক্ত এবং অবশিষ্টাংশ অন্তত একটি নেতিবাচক হলে যোগ করা মডুলাস দেয়।


-2

গণিতে মডুলো অপারেশনের ফলাফল ইউক্যালিডিয়ান বিভাগের বাকী অংশ। তবে অন্যান্য সম্মেলনগুলিও সম্ভব। কম্পিউটার এবং ক্যালকুলেটরগুলির সংখ্যা সংরক্ষণ এবং প্রতিনিধিত্ব করার বিভিন্ন উপায় রয়েছে; সুতরাং তাদের মডুলো অপারেশন সংজ্ঞা প্রোগ্রামিং ভাষা এবং / বা অন্তর্নিহিত হার্ডওয়্যার উপর নির্ভর করে।

 7 modulo  3 -->  1  
 7 modulo -3 --> -2 
-7 modulo  3 -->  2  
-7 modulo -3 --> -1 

2
উইকি ইউক্লিডিয় বিভাজন দাবি 0 ≤ r < |b|যা ওরফে বাকি অর্থ "মডিউল অপারেশন।" সর্বদা সর্বনিম্ন ০. আপনি কী সংজ্ঞা ব্যবহার করছেন -২ এবং -১ এ ফলাফল?
chux - মনিকা পুনরায় ইনস্টল করুন

স্যার, আমার কোন আত কিন্তু আমি ঠিক Google 7 মডিউল -3 -> -2 .and. -7 মডিউল -3 -> -1 স্যার দয়া করে ব্যাখ্যা করুন এটি কেন ঘটে
shub শর্মা

1
গুগল উইকি ইউক্লিডিয়ান বিভাগের তুলনায় মডুলোর (স্বাক্ষরিত মডুলো?) একটি আলাদা সংজ্ঞা ব্যবহার করে (রেমন্ড টি। বোতে বর্ণিত)। এই পার্থক্য আরও আলোচনা। গল্পের নৈতিক: a%bএবং a modulo bযখন একই অর্থ আছে a,bইতিবাচক। সি 99 %negative ণাত্মক মানগুলির সাথে সুনির্দিষ্টভাবে সংজ্ঞা দেয় । সি এই "বাকি।" কল মডিউলো "নেগেটিভ মান বিষয়ে বিশ্বের বিভিন্ন নির্ভরশীল সি বৈশিষ্ট শুধুমাত্র ব্যবহার করে।" মডিউল "পজিটিভ সংখ্যার প্রেক্ষাপটে।
পুনর্বহাল মনিকা - chux
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.