2010-04-14 7 views
7

निम्नलिखित पूर्णांक अंकगणितीय संपत्ति धारण करता है?पूर्णांक विभाजन गुण

(m/n)/l == m/(n*l) 

पहले मैंने सोचा कि मुझे जवाब पता था (पकड़ नहीं है), लेकिन अब मुझे यकीन नहीं है। क्या यह सभी संख्याओं के लिए या केवल कुछ शर्तों के लिए है, यानी n > l?

प्रश्न कंप्यूटर अंकगणित, अर्थात् q = n/m, q*m != n से संबंधित है, ओवरफ़्लो को अनदेखा कर रहा है।

+0

आप किनारे की परवाह करते हैं अतिप्रवाह जैसे मामलों? या विचित्र आर्किटेक्चर/भाषाएं जैसे कि शून्य की बजाय 'n/m' राउंड डाउन? –

उत्तर

12
Case1 assume m = kn+b (b<n), 
left = (m/n)/l = ((kn+b)/n)/l = (k+b/n)/l = k/l (b/n=0, because b<n) 
right = (kn+b)/(n*l) = k/l + b/(n*l) = k/l (b/(n*l)=0, because b<n) 
=> left = right 

Case2 assume m = kn, 
left = (m/n)/l = (kn/n)/l = k/l 
right = kn/(n*l) = k/l 
=> left = right 

So, (m/n)/l == m/(n*l) 
+0

सही नहीं है अगर एन * एल पूर्णांक प्रकार की बाध्यता बहती है। – mtrw

+1

@mtrw निष्पक्ष होने के लिए, – Anycorn

+0

@ziang, @aaa - मैंने यह सोच कम कर दिया कि अतिप्रवाह प्रश्न का एक महत्वपूर्ण हिस्सा था। अब मेरा डाउनवोट पूर्ववत करने के लिए बहुत पुराना है। क्षमा करें ज़ियांग। – mtrw

5

क्या आप गणितीय पूर्णांक के बारे में बात कर रहे हैं? या एक प्रोग्रामिंग भाषा के भीतर निश्चित चौड़ाई पूर्णांक?

दो समीकरण गणितीय पूर्णांक के समान हैं, लेकिन यदि आप निश्चित-चौड़ाई पूर्णांक का उपयोग कर रहे हैं तो दोनों कार्यों में अलग-अलग अतिप्रवाह व्यवहार होते हैं।

उदाहरण के लिए, मान लीजिए पूर्णांकों 32-बिट

(1310720000/65536)/65537 = 20000/65537 = 0 

हालांकि, 65536 * 65,537 एक 32-बिट पूर्णांक अतिप्रवाह जाएगा, और 65536 के बराबर होगा, इसलिए

1310720000/(65536*65537) = 1310720000/65536 = 20000 
+0

+1 मुझे इसे मारने के लिए +1। और यदि मैं कर सकता था, तो एक और +1 स्पष्ट रूप से शब्द पूर्णांक पकड़ने के लिए एकमात्र उत्तरदाता होने के लिए! – mtrw