Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

जावा प्रोग्राम: ऐरे गुणनफल को n से विभाजित करने पर शेषफल

उदाहरण

import java.util.*; 
import java.lang.*; 

public class Demo { 
    public static int remainder(int myArr[], int arrLen, int val) { 
        int mulVal = 1; 
        for (int i = 0; i < arrLen; i++) 
            mulVal = (mulVal * (myArr[i] % val)) % val; 
        return mulVal % val; 
    } 
    
    public static void main(String argc[]) { 
        int[] myArr = new int[]{ 35, 100, 69, 99, 27, 88, 12, 25 }; 
        int arrLen = 8; 
        int val = 11; 
        System.out.println("ऐरे को 11 से गुणा करने पर शेषफल है: "); 
        System.out.println(remainder(myArr, arrLen, val)); 
    } 
}

आउटपुट

ऐरे को 11 से गुणा करने पर शेषफल है 0

व्याख्या: Demo क्लास में 'remainder' नामक एक स्टेटिक फंक्शन होता है, जो एक इंटीजर ऐरे के माध्यम से पुनरावृति करता है, और जांचता है कि क्या एक विशिष्ट संख्या इंटीजर ऐरे के सभी तत्वों को पूरी तरह से विभाजित करती है, अन्यथा शेषफल मान देती है। मुख्य फंक्शन में, संख्या का मान परिभाषित किया जाता है, एक इंटीजर ऐरे परिभाषित किया जाता है, और ऐरे की लंबाई परिभाषित की जाती है। फंक्शन को इंटीजर ऐरे, ऐरे की लंबाई, और संख्या को पैरामीटर के रूप में पास करके कॉल किया जाता है। प्रासंगिक संदेश कंसोल पर प्रदर्शित होता है।

गणितीय सिद्धांत:

(a × b) mod m = ((a mod m) × (b mod m)) mod m

यह गुण हमें ओवरफ्लो से बचाता है क्योंकि हम प्रत्येक गुणन के बाद मॉड्यूलो लेते हैं।

चरण-दर-चरण गणना (उदाहरण के लिए):

ऐरे: [35, 100, 69, 99, 27, 88, 12, 25], m = 11

चरण 1: 35 % 11 = 2        → mul = (1 × 2) % 11 = 2
चरण 2: 100 % 11 = 1       → mul = (2 × 1) % 11 = 2
चरण 3: 69 % 11 = 3        → mul = (2 × 3) % 11 = 6
चरण 4: 99 % 11 = 0        → mul = (6 × 0) % 11 = 0
चरण 5-8: 0 से गुणा = 0   → अंतिम परिणाम = 0

चूंकि 99, 11 से विभाज्य है, पूरा गुणनफल 11 से विभाज्य है।

ओवरफ्लो-सुरक्षित सामान्य संस्करण:

public static long remainderLargeNumbers(long[] arr, long mod) {
    long result = 1;
    for (long num : arr) {
        result = (result * (num % mod)) % mod;
        // या Java 8+ के लिए:
        // result = Math.multiplyExact(result, num % mod) % mod;
    }
    return result;
}

अनुप्रयोग:

    <बड़े संख्याओं के मॉड्यूलर अंकगणित में उपयोगी/li>
  • क्रिप्टोग्राफी (RSA, डिफी-हेलमैन)
  • प्रतिस्पर्धात्मक प्रोग्रामिंग (बड़े ऐरे गुणनफल मॉड्यूलो)
  • हैश फंक्शन गणना
  1. C++ में सरणी के एलिमेंट्स का गुणनफल C++ में सरणी के एलिमेंट्स का गुणनफल

    पूर्णांक एलिमेंट्स की एक सरणी दी गई है और कार्य सरणी के एलिमेंट्स को गुणा करना और प्रदर्शित करना है। उदाहरण इनपुट-: arr[]={1,2,3,4,5,6,7} आउटपुट-: 1 x 2 x 3 x 4 x 5 x 6 x 7 = 5040 इनपुट-: arr[]={3, 4,6, 2, 7, 8, 4} आउटपुट-: 3 x 4 x 6 x 2 x 7 x 8 x 4 = 32256 नीचे दिए गए प्रोग्राम में उपयोग किया गया द

  1. जावा प्रोग्राम: वर्ग का क्षेत्रफल निकालना जावा प्रोग्राम: वर्ग का क्षेत्रफल निकालना

    इस लेख में हम समझेंगे कि वर्ग का क्षेत्रफल कैसे निकाला जाता है। वर्ग का क्षेत्रफल: साइड × साइड = साइड² डेमोनस्ट्रेशन इनपुट: भुजा की लंबाई: 4 आउटपुट: वर्ग का क्षेत्रफल: 16 एल्गोरिदम चरण 1 - शुरू चरण 2 - दो इंटीजर वेरिएबल घोषित करें: my_side, my_area चरण 3 - उपयोगकर्ता से मान पढ़ें या परिभाषित क

  1. पायथन प्रोग्राम: ऐरे मल्टीप्लिकेशन को n से विभाजित करने पर शेषफल ढूंढें पायथन प्रोग्राम: ऐरे मल्टीप्लिकेशन को n से विभाजित करने पर शेषफल ढूंढें

    इस लेख में, हम नीचे दिए गए प्रॉब्लम स्टेटमेंट के समाधान के बारे में सीखेंगे: प्रॉब्लम स्टेटमेंट कई नंबर और एक नंबर इनपुट n दिए जाने पर, हमें सभी नंबर को n से विभाज्य गुणा करने के बाद शेषफल प्रिंट करना होगा। दृष्टिकोण पहले, arr[i] % n जैसा शेषफल निकालें। फिर इस शेषफल को वर्तमान परिणाम से गुणा करे