math सरल प्रोग्रामिंग गणित का सबसेट है?




मैथमेटिक्स में करियर (24)

खैर, सब से अलग ...!

गणित प्रोग्रामिंग के कई पहलुओं के लिए प्रयोग किया जाता है जैसे कि

  • कुशल और स्मार्ट एल्गोरिदम बनाना
  • बिग ओ नोटेशन को समझना
  • सुरक्षा (जैसे आरएसए)
  • बहुत कुछ ... मुझे लगता है कि प्रोग्रामिंग को जीवित रहने के लिए गणित की आवश्यकता है। लेकिन मैं इसे एक सबसेट नहीं कहूंगा। यह भौतिकी के गुणों का उपयोग करने वाले ग्लास का उपयोग करने जैसा है, लेकिन वे कलाकार स्वयं भौतिकविदों को नहीं बुलाते हैं।

मैंने कई बार सुना है कि सभी प्रोग्रामिंग वास्तव में गणित का सबसेट है। कुछ सुझाव देते हैं कि ओओ, इसकी जड़ों पर, गणितीय आधारित है, लेकिन मुझे कुछ स्पष्ट उदाहरणों से अलग कनेक्शन नहीं मिला है:

  • एक पुनरावर्ती एल्गोरिदम साबित करने के लिए प्रेरण का उपयोग करना,
  • औपचारिक शुद्धता सबूत,
  • कार्यात्मक भाषाओं,
  • लैम्ब्डा कैलकुस,
  • Asymptotic जटिलता,
  • डीएफए, एनएफए, ट्यूरिंग मशीनें, और सामान्य रूप से सैद्धांतिक गणना,
  • और तथ्य यह है कि बॉक्स पर सब कुछ बाइनरी है।

मुझे पता है कि गणित प्रोग्रामिंग के लिए बहुत महत्वपूर्ण है, लेकिन मैं इस "सबसेट" दृश्य के साथ संघर्ष करता हूं। गणित के सबसेट प्रोग्रामिंग किस तरीके से है?

मैं एक स्पष्टीकरण की तलाश में हूं जो एंटरप्राइज़ / ओओ विकास के लिए प्रासंगिक हो सकता है, यदि कोई मजबूत पर्याप्त कनेक्शन है, यानी।


अस्वीकरण: मैं एक आईटी परामर्शदाता के रूप में काम करता हूं और मुख्य रूप से पोर्टल और वास्तुकला सामान विकसित करता हूं। मेरे पास मनोविज्ञान की डिग्री है। मैंने कभी विश्वविद्यालय में गणित का अध्ययन नहीं किया। और मुझे अपना काम पूरा हो गया। और आमतौर पर अच्छी तरह से। क्यूं कर? क्योंकि मुझे नहीं लगता कि आपको कोड लिखने के लिए गणित (जैसे 'भारी' गणित सामग्री में) की आवश्यकता है। आपको विश्लेषणात्मक सोच, समस्या सुलझाने के कौशल और उच्च स्तर के अमूर्तता की आवश्यकता है। लेकिन गणित आपको यह नहीं देते हैं। यह सिर्फ एक और अनुशासन है जिसके लिए समान कौशल की आवश्यकता होती है। उपयोगिता के मुद्दों और डेटा भंडारण से निपटने के दौरान मनोविज्ञान में मेरी पढ़ाई मेरे दैनिक काम पर भी लागू होती है। भाषाविज्ञान और सेमियोटिक्स भी एक हिस्सा खेलते हैं।

लेकिन रुको, अभी तक मुझे जलाओ मत। मैं यह नहीं कह रहा हूं कि कंप्यूटरों के लिए गणित की आवश्यकता नहीं है - जाहिर है, आपको एन्क्रिप्शन एल्गोरिदम और हार्डवेयर और आदि को डिजाइन करते समय वास्तविक गणित कौशल की आवश्यकता होती है - लेकिन यदि, बहुत से प्रोग्रामर के रूप में, आप बस एक मध्य / निम्न स्तर की भाषा ( सी की तरह) या उच्च स्तरीय सामान (जैसे सी # या जावा), ज्यादातर पूर्व-निर्मित ढांचे और एपीआई का उपभोग करते हैं, आपको फूरियर ट्रांसफॉर्म या हफमैन पेड़ या मोबियस स्ट्रिप्स के पीछे गणितीय सिद्धांतों को समझने की ज़रूरत नहीं है ... किसी और को संभालने दें कि, और मुझे इसके शीर्ष पर मूल्य बनाने दें। मैं बेवकूफ नहीं हूँ। मुझे रैखिक और घातीय एल्गोरिदम और डेटा संरचनाओं और आदि के बीच का अंतर पता है। मुझे क्विकॉर्ट या एक स्पिफी नई वीडियो संपीड़न तकनीक को फिर से लिखने में रुचि नहीं है।


यदि आप बस अपने बॉस द्वारा डिज़ाइन चश्मा आपको सौंपना चाहते हैं, तो यह बहुत गणित नहीं है लेकिन ऐसा काम बिल्कुल मजेदार नहीं है ... हालांकि, चीजों को कैसे करना है इसके साथ आने के लिए गणितीय विचारों की आवश्यकता होती है, कम से कम चीजें अमूर्तता, ग्राफ, कभी-कभी संख्या सिद्धांत सामग्री और समस्याओं, कैलकुस के आधार पर। व्यक्तिगत रूप से, मैं प्रोग्रामिंग के साथ शामिल हूं, और मैं इसे गणितीय पक्ष देखता हूं। हालांकि, अधिकांश बार आईएमओ, आप पुस्तकालय से पुस्तक ले सकते हैं और उस चीज की मूल बातें देख सकते हैं जो आपको करने की ज़रूरत है, लेकिन इसके लिए कुछ गणितीय समझ को आगे की आवश्यकता है।

आप वास्तव में इसके पीछे गणित को समझे बिना "अच्छा" एल्गोरिदम तैयार नहीं कर सकते हैं। Google में खोजना आपको अभी तक ले जाता है।


ठीक है, मैं कॉलेज में गणित और सीएस प्रमुख था। मैं कहूंगा कि यदि सेट ए मठ है और सेट बी सीएस है, तो ए बी को छेड़छाड़ करता है। यह सबसेट नहीं है।

इसमें कोई संदेह नहीं है कि कंप्यूटर विज्ञान के कई पिता और माता, ट्यूरिंग और डिक्स्ट्रा जैसे गणितज्ञ थे। इंटरनेट के अधिकांश संस्थापक या तो गणित, भौतिकी, या इंजीनियरिंग में पीएचडी थे। कंप्यूटर विज्ञान की अधिकांश मूल अवधारणा गणित से आती हैं, लेकिन प्रोग्रामिंग का कार्य वास्तव में गणित नहीं है। गणित हमारे दैनिक जीवन में हमारी सहायता करता है, लेकिन दोनों समान नहीं हैं।

लेकिन इसमें कोई संदेह नहीं है कि कंप्यूटर के पीछे मूल तर्क अच्छी तरह से करना था, चीजों की गणना करना। हम इतने कम समय में वहां से एक लंबा सफर तय कर चुके हैं।


हम जो कुछ भी करते हैं उसकी नींव गणित है।

सौभाग्य से, हमें ऐसा करने के लिए गणित में अच्छा होने की आवश्यकता नहीं है। जैसे कि आपको कार चलाने या यहां तक ​​कि एक विमान उड़ाने के लिए भौतिकी को समझने की आवश्यकता नहीं है।


मुझे गणित लगता है! = प्रोग्रामिंग: पी


मुझे विश्वास नहीं है कि मैंने सुना है कि प्रोग्रामिंग गणित का सबसेट है। यहां तक ​​कि आपके द्वारा प्रदान किया गया लिंक प्रोग्रामिंग के लिए एक प्रस्तावित दृष्टिकोण है (यह दावा नहीं करता कि यह गणित का सबसेट है) और विकी पेज में भी इसमें कई असहमतिएं हैं।

प्रोग्रामिंग की आवश्यकता है (कम से कम कुछ) लागू गणित। कार्यक्रमों और कार्यक्रम के टुकड़ों का वर्णन और विश्लेषण करने में गणित का उपयोग किया जा सकता है। प्रोग्रामिंग गणित के साथ घनिष्ठ संबंध रखता है और इसका उपयोग करता है और इसकी अवधारणाओं को भारी रूप से उपयोग करता है। लेकिन सबसेट? नहीं।

मुझे किसी को वास्तव में दावा करना अच्छा लगेगा कि यह कुछ स्पष्ट तर्क के साथ है। मुझे नहीं लगता कि मेरे पास कभी है

सिर्फ इसलिए कि आप कुछ के बारे में तर्क के लिए गणित का उपयोग कर सकते हैं, इसका मतलब यह नहीं है कि यह आईपीएस वास्तव में, गणितीय वस्तु है। गणित का उपयोग आंतरिक दहन इंजन, रेडियोधर्मी क्षय और जॉगलिंग पैटर्न के कारण करने के लिए किया जाता है। गणित का उपयोग गणित नहीं कर रहा है।


आप वास्तव में तर्कसंगत सबूत के रूप में गणित का तर्क दे सकते हैं, प्रोग्रामिंग के समान है -

करी-हावर्ड पत्राचार देखें । यह शायद गणितज्ञ चीजों को देखने का तरीका है, लेकिन मुझे लगता है कि यह सिर पर कहानियों की नाखून मार रहा है।


मैं कहूंगा कि प्रोग्रामिंग गणित के बारे में कम है क्योंकि यह 4 वें पीढ़ी की भाषा तक बढ़ती है। विधानसभा गणित के बारे में बहुत कुछ है, सी #, इतना नहीं। विचार?


गणितज्ञ के रूप में, यह मुझे स्पष्ट करता है कि गणित प्रोग्रामिंग के बराबर नहीं है, लेकिन यह प्रक्रिया जो किसी भी विषय में समस्याओं को हल करने के लिए उपयोग की जाती है, वह बेहद समान है।

उच्च स्तर के गणित प्रश्नों को हल करने के लिए विश्लेषणात्मक सोच, समस्याओं को हल करने के संभावित तरीकों का एक टूलबॉक्स, क्षेत्र के साथ अनुभव, और आपके उत्तर का निर्माण करने के कुछ औपचारिक तरीकों की आवश्यकता होती है ताकि अन्य गणितज्ञ सहमत हों। यदि आपको किसी समस्या को हल करने का एक विशेष रूप से चालाक, अमूर्त, या सुरुचिपूर्ण तरीका मिलता है, तो आपको अपने साथी गणितज्ञों से कुडोस मिलते हैं। विशेष रूप से कठिन गणित की समस्याओं के लिए, आप चरणों में समस्या का समाधान कर सकते हैं, और अनुमानों और सबूत नामक चीजों का उपयोग करके अपने मंच तर्कों को संहिताबद्ध कर सकते हैं।

मुझे लगता है कि प्रोग्रामिंग में कौशल का एक ही सेट शामिल है। प्रोग्रामिंग में, सिद्धांतों का एक ही सेट समस्याओं के समाधान के समाधान और प्रस्तुत करने पर लागू होता है। जब आपके पास प्रोग्रामिंग दुविधा के लिए आंशिक समाधान होता है, तो आप इसे अपनी व्यक्तिगत लाइब्रेरी के हिस्से के रूप में शामिल करते हैं और बाद में इसे दूसरी बड़ी समस्या के हिस्से के रूप में उपयोग करते हैं। ये कौशल गणित में उपयोग किए गए कौशल के समान ही प्रतीत होते हैं।

गणित और प्रोग्रामिंग के बीच बड़ा अंतर बाद में गणित की तुलना में प्रोग्रामिंग के विभिन्न विषयों के बीच आम है। गणित के दो क्षेत्र प्रस्तुति में बहुत अलग हो सकते हैं और क्षेत्र को संवाद करने के लिए क्या उपयोग किया जाता है। इसके विपरीत, कम से कम मेरे लिए प्रोग्रामिंग संरचनाएं, कई अलग-अलग भाषाओं में बहुत समान दिखती हैं।


गणित + कला + तर्क


प्रोग्रामिंग और शुद्ध गणित के बीच का अंतर राज्य की अवधारणा है। एक कार्यक्रम एक राज्य मशीन है जो राज्यों के बीच संक्रमण के लिए तर्क (गणित) का उपयोग करती है। राज्यों के बीच संक्रमण के लिए उपयोग किया जाने वाला वास्तविक तर्क आमतौर पर बहुत ही सरल होता है, यही कारण है कि गणित प्रतिभा होने के कारण प्रोग्रामर के रूप में आपको उतना ही मदद नहीं मिलती है।


यह आधा गणित है, आधा आदमी बोलता है, दुह।


प्रोग्रामिंग लागू गणित की सबसे कठिन शाखाओं में से एक है; गरीब गणितज्ञ शुद्ध गणितज्ञों के बेहतर बने रहे थे।

--EW Dijkstra


प्रोग्रामिंग और शुद्ध गणित के बीच का अंतर राज्य की अवधारणा है।

http://en.wikipedia.org/wiki/Dynamic_logic_(modal_logic) पर एक नज़र डालें http://en.wikipedia.org/wiki/Dynamic_logic_(modal_logic) । यह समय के माध्यम से बदलती चीजों का गणितीय विश्लेषण का एक तरीका है। इसके अलावा, होरे ट्रिपल कार्यक्रमों के इनपुट आउटपुट व्यवहार को औपचारिक बनाने का एक तरीका है। कार्यक्रमों की अनुक्रमिक संरचना से निपटने और असाइनमेंट कैसे काम करता है, कुछ गणित करके, आप गणितीय कठोर तरीके से समय के साथ राज्य के साथ बदलकर पूरी तरह से निपट सकते हैं।

यदि आप जो गणित जानते हैं वह अपर्याप्त है, तो आप जो कुछ विश्लेषण करना चाहते हैं उससे निपटने के लिए कुछ नए गणित का आविष्कार करें। न्यूटन और लीबनिज़ ने इसे विश्लेषण के लिए किया (उर्फ कैलकुस, मुझे लगता है)। गणना और प्रोग्रामिंग के लिए ऐसा करने का कोई कारण नहीं है।


प्रोग्रामिंग मूल रूप से गणित के अर्ध-उप-समूह के रूप में शुरू हो सकती है, लेकिन समय के साथ क्षेत्र की बढ़ती जटिलता ने प्रोग्रामिंग को सूचना प्रसंस्करण और गणना के लिए अच्छे सार तत्व बनाने की कला और विज्ञान के रूप में प्रेरित किया है।

प्रोग्रामिंग में अच्छी डिजाइन और कार्यान्वयन के लिए गणित, इंजीनियरिंग और सौंदर्यशास्त्र शामिल है। एल्गोरिदम गणित का विस्तार है, और सिस्टम इंजीनियरिंग पक्ष कुछ डिग्री के लिए अन्य इंजीनियरिंग विषयों के साथ ओवरलैप करता है। हालांकि, न तो गणित और न ही अन्य इंजीनियरिंग क्षेत्रों में जटिल, लचीली, और अभी तक समझने योग्य सार तत्वों के लिए समान स्तर की आवश्यकता होती है जिसे नई और विकसित समस्याओं को हल करने के लिए कई अलग-अलग स्तरों पर उपयोग और अनुकूलित किया जा सकता है।

यह उपयोगी, लचीली और गतिशील अवशोषण की आवश्यकता है जिसने पहली बार फ़ंक्शन लाइब्रेरीज़, फिर कक्षा / घटक पुस्तकालयों के निर्माण और हाल के वर्षों में डिज़ाइन पैटर्न और सेवा उन्मुख आर्किटेक्चर के निर्माण की शुरुआत की। हालांकि उत्तरार्द्ध में अधिक डिज़ाइन फोकस है, लेकिन वे प्रोग्रामिंग समस्याओं और समाधानों के बीच उच्च स्तरीय अबास्ट्रक्शन पुल बनाने की बढ़ती आवश्यकता पर प्रतिक्रिया देते हैं।

इन सभी कारणों से, प्रोग्रामिंग न तो सबसेट है और न ही गणित का सुपरसेट है। यह अभी तक एक और क्षेत्र है जो गणित का उपयोग करता है जिसमें दूसरों की तुलना में गहरी जड़ें होती हैं।


कारण मैं एक प्रोग्रामर हूं क्योंकि मुझे गणित पसंद नहीं है। मुझे गणित के साथ कोई समस्या नहीं है, और मैं इसके साथ वैचारिक रूप से ठीक हूं, मुझे हाथ से गणना करना पसंद नहीं है। जब मैंने पाया कि मैं कंप्यूटर को बता सकता हूं कि गणित की समस्या क्या है और इसे मेरे लिए गणना करने दें, जीवनभर का जुनून और करियर पैदा हुआ था।

प्रश्न का उत्तर देने के लिए, मेरे अल्मा माटर के अनुसार, गणित == प्रोग्रामिंग के बाद से उन्होंने मुझे गणित की आवश्यकता को पूरा करने के लिए सी ++ में परिचय लेने की अनुमति दी।

संपादित करें: मुझे जिक्र करना चाहिए कि मेरी डिग्री दूरसंचार में है, उस समय, केवल एक सेमेस्टर की मानक उदार कला गणित की आवश्यकता थी।


यह इस अर्थ में गणित है कि इसे एल्गोरिदम इत्यादि के बारे में अमूर्त विचार की आवश्यकता है।
यह इंजीनियरिंग है जब इसमें योजना कार्यक्रम, डिलिवरेबल्स, परीक्षण शामिल है।
यह कला है जब आपको पता नहीं होता कि यह अंततः कैसे समाप्त हो रहा है।


संगीत के साथ प्रोग्रामिंग की तुलना करना भी दिलचस्प है। यूके में, वैसे भी, कंप्यूटिंग आधारित अंडरग्रेड विश्वविद्यालय पाठ्यक्रम हैं जो आवेदकों को संगीत योग्यता के आधार पर स्वीकार करेंगे, जो कि तर्क, पैटर्न इत्यादि के कारण कंप्यूटिंग के लिए माना जाता है।


प्रोग्रामिंग एक बहुत व्यापक विषय है। अच्छा सॉफ्टवेयर न केवल गणित (तर्क) पर आधारित है बल्कि मनोविज्ञान, भाषा विज्ञान आदि पर भी आधारित है। एल्गोरिदम गणित का हिस्सा हैं, लेकिन एल्गोरिदम के अलावा कई अन्य प्रोग्रामिंग-संबंधित चीजें हैं।


में कहना चाहूंगा...

यह आंशिक रूप से गणित है, खासकर सैद्धांतिक स्तर पर। कल्पना कीजिए कि कुशल खोज / सॉर्टिंग / क्लस्टरिंग / आवंटित / एल्गोरिदम को फूइंग करने की कल्पना करें, यह सब गणित है ... संख्या सिद्धांत से आंकड़ों तक तालमेल चला रहा है।

यह आंशिक रूप से इंजीनियरिंग है। जटिल प्रणाली शायद ही कभी प्रदर्शन और विश्वसनीयता के आदर्श स्तर प्राप्त कर सकती है, और सॉफ्टवेयर कोई अपवाद नहीं है। अविश्वसनीय हार्डवेयर और (अहम) इंसानों के चेहरे पर मजबूती हासिल करने के बारे में बहुत से सॉफ्टवेयर विकास हैं।

और यह आंशिक रूप से कला है। क्रिएटिव और idiosyncratic सॉफ्टवेयर डिजाइन अक्सर नए नए विचारों के साथ आता है ... असेंबली भाषा, multitasking ऑपरेटिंग सिस्टम, ग्राफिकल यूजर इंटरफेस, गतिशील भाषाओं, और वेब।

बस मेरे 2 ¢ ...


गणित सत्य का सबसे शुद्ध रूप है। सब कुछ गणित से विरासत में मिलता है।

तथास्तु।


यहां बहुत भ्रम है।

सबसे पहले, "प्रोग्रामिंग" (वर्तमान में) बराबर "कंप्यूटर विज्ञान" नहीं है। जब डिजस्ट्रा ने खुद को "प्रोग्रामर" (शीर्षक या अधिक आविष्कार किया) कहा, तो वह सीआरयूडी अनुप्रयोगों को पंप नहीं कर रहा था, लेकिन वास्तव में लागू कंप्यूटर विज्ञान कर रहा था। आइए हम इसे भ्रमित न करें - आज, व्यापार सेटिंग और कंप्यूटर विज्ञान में अधिकांश प्रोग्रामर के बीच एक बड़ा अंतर है।

अब, तर्क दिया जा सकता है कि कंप्यूटर विज्ञान गणित की एक शाखा है; लेकिन, जैसा कि न्यूथ ने इंगित किया है (अपने कंप्यूटर "कंप्यूटर साइंस और गणित से संबंधित संबंध" में, कंप्यूटर साइंस पर अपने चुने हुए पत्रों में एकत्रित) यह भी तर्क दिया जा सकता है कि गणित कंप्यूटर विज्ञान की एक शाखा है।

असल में, मैं गणित और कंप्यूटर विज्ञान के बीच संबंधों के बारे में सोचने वाले किसी भी व्यक्ति को इस पेपर की दृढ़ता से अनुशंसा करता हूं, क्योंकि Knuth अच्छी तरह से क्षेत्र को बताता है।

लेकिन, अपने मूल प्रश्न पर लौटने के लिए: एक व्यवसायी को, "उद्यम / ओओ विकास" गणित से बहुत दूर हटा दिया गया है - लेकिन यह काफी हद तक है क्योंकि ऑपरेशन के निचले स्तर पर शामिल गंभीर गणित में से अधिकांश को संकलित किया गया है (कंपाइलर्स द्वारा , ऑपरेटिंग सिस्टम, निर्देश सेट, आदि)। इसी तरह, एक कार चलाने के लिए आंतरिक दहन इंजन के भौतिकी के उन्नत ज्ञान की आवश्यकता नहीं है। स्वाभाविक रूप से, यदि आप एक और अधिक कुशल कार डिजाइन करना चाहते हैं ....


यदि गणित की आपकी परिभाषा में औपचारिक तर्क के सभी रूप शामिल हैं, और प्रोग्रामिंग केवल कोड में मौजूद तर्क और गणनाओं द्वारा परिभाषित किया गया है, तो प्रोग्रामिंग गणित QED का एक सबसेट है ;-)

लेकिन यह कहने जैसा है कि पेंटिंग केवल सतह पर रंगीन रंगद्रव्य डाल रही है - यह पूरी तरह से कला, अंतर्दृष्टि, अंतर्ज्ञान, पूरी रचनात्मक प्रक्रिया को अनदेखा करती है

कोई तर्क दे सकता है कि संगीत एक ही तर्क से गणित का सबसेट है

तो मुझे नहीं कहना होगा, प्रोग्रामिंग गणित का सबसेट नहीं है। प्रोग्रामिंग गणित के सबसेट का उपयोग करता है, लेकिन गैर-गणित कौशल / प्रतिभा के साथ-साथ [संगीत रचना की तरह]





math