सबसे पहले: मैं एक गणितज्ञ हूं - एक पेशेवर (इसमें मुझे गणित करने के लिए भुगतान मिलता है)। मैं कोई प्रोग्रामर नहीं हूं । मैं कुछ प्रोग्रामिंग करता हूं, लेकिन निश्चित रूप से कार्गो कल्ट किस्म का (निश्चित रूप से https://tex.stackexchange.com/q/451/86 और मेरी प्रतिक्रिया के लिए पहली टिप्पणी देखें ) और उस तरह का कुछ भी नहीं जो मुझे सामान्य रूप से इस पर लाएगा। साइट (वास्तव में, मैंने इस जवाब को पोस्ट करने के लिए TeX चैट रूम में एक लिंक देखने के बाद यहां पंजीकृत किया है)।
मेरे उत्तर का सारांश है: गणित प्रोग्रामिंग है ।
मुझे हाल ही में छात्रों के एक गैर-गणितीय समूह को एक गणित पाठ्यक्रम सिखाने के लिए मिला। वे प्रोग्रामिंग सेक्शन थे। मुझे लगा कि यह शानदार था! अंत में, मैं उन लोगों को गणित पढ़ाने में सक्षम होने जा रहा था जो पहले से ही मूल विचारों को समझते थे और जिनके पास पहले से ही गणित करने के लिए अल्पविकसित टूलकिट था। मैं अविश्वसनीय रूप से निराश था जब मैंने पूछा कि उनमें से कितने ने वास्तव में एक कार्यक्रम लिखा था और 0 और 1 के बीच कहीं जवाब मिला।
इससे पहले कि मैं जाऊं, मुझे कुछ चीजें स्पष्ट करनी चाहिए। गणित के ऐसे क्षेत्र हैं जो खुद को प्रोग्रामिंग के साथ सीधे चिंता करते हैं और एल्गोरिदम का मूल्यांकन करने और भाषाओं और इस तरह के वर्गीकरण के साथ क्या करना है। मैं उन लोगों के बारे में बात नहीं कर रहा हूँ। एक ऐसा कार्यक्रम भी है जो सभी गणित को एक औपचारिक भाषा में अनुवाद करने की कोशिश कर रहा है जिसका मूल्यांकन कंप्यूटर द्वारा किया जा सकता है। मैं जो बात कर रहा हूं, यह उसके थोड़ा करीब है, लेकिन यहां तक कि उस पर ध्यान केंद्रित करने के लिए जो मैं कहने की कोशिश कर रहा हूं उसका मुख्य भाग याद होगा। मैं जो गणित करता हूं और जो प्रोग्रामिंग करता हूं वह लगभग पूरी तरह से विषय से असंबंधित है। उनके बीच संबंध एक अलग स्तर पर है।
जहां मैं शुरू करना चाहता हूं वह मुख्य प्रश्न पर टिप्पणी के साथ है:
यदि वह गणित कर रहा है, तो सभी मानव गतिविधि गणित का एक रूप है। अगर ऐसा है तो गणित शब्द का कोई उपयोगी अर्थ नहीं है, क्योंकि इसका उपयोग एक गतिविधि को दूसरे से अलग करने के लिए नहीं किया जा सकता है।
हां, वह गणित कर रहा है। लेकिन "गणित" अभी भी एक उपयोगी शब्द है क्योंकि, जैसा कि गीत कहता है, "यह नहीं है कि आप क्या करते हैं, यह तरीका है कि आप इसे करते हैं।" मैं कहूंगा कि मैं गणित कर रहा हूं जब मैं गणितीय तरीके से कुछ कर रहा हूं । कभी-कभी, यह "हार्ड कोर" गणित है: परिभाषाओं को तैयार करना, प्रमेय साबित करना। कभी कभी, यह नहीं है। कभी-कभी, यह मूर्खतापूर्ण छोटे कार्यक्रम लिख रहा है ताकि मेरे बच्चे अपनी वर्तनी शब्द सीख सकें।
जब मैं कार्यक्रम करता हूं तो यही मेरी मदद करता है:
अमूर्त यह शायद है गणित से सबसे महत्वपूर्ण हस्तांतरणीय कौशल। इसके द्वारा, मेरा मतलब है कि सभी अनावश्यक सामानों को हटाकर महत्वपूर्ण गुणों पर ध्यान केंद्रित करने की क्षमता।
परिप्रेक्ष्य यदि मैं केवल एक चीज चुन सकता था जो मेरे सभी छात्रों को सीखना था, तो यह होगा: समस्या को देखने के लिए लोगों को बदलने की क्षमता। हम आम तौर पर रेखीय बीजगणित में परिवर्तन के आधारभूत सूत्रों के साथ इसका इलाज करते हैं (जो भयावह परिपक्वता और भयावह जटिलताओं का कारण बनता है), लेकिन यह उससे कहीं अधिक लागू होता है। दिल में, यह विचार है कि सिर्फ इसलिए कि कुछ एक फैशन में आपके सामने प्रस्तुत किया गया है, जो आपके साथ काम करने का तरीका नहीं है। यह उस चीज़ को देखने के तरीके से अलग करता है जिस तरह से इसे प्रस्तुत किया गया है। यह अत्यंत व्यावहारिक हो सकता है: यह सब कुछ उपयोगी या कुशल बनाने के बारे में है। अगर मेरे पास वैक्टर की एक सूची है और यह उन्हें x-निर्देशांक की सूची और y- निर्देशांक की सूची के रूप में संग्रहीत करने के लिए अधिक कुशल है, तो ऐसा ही हो ।
फॉर्म बनाम फंक्शन अग्रणी ऊपर से; अगर एक बात कई अलग अलग तरीकों में प्रस्तुत किया जा सकता है तो यह अब कहना है कि एक विशेष प्रस्तुति है उचित है बात। उस गीत फिर से गलत उद्धरण के लिए: "ऐसा नहीं है कि तुम क्या कर रहे हैं यह है कि आप क्या करते " है कि मायने रखती है।
मैं आगे बढ़ सकता था, लेकिन वे हैं जो वसंत को ध्यान में रखते हैं।
अब, मैंने अब तक जो लिखा है, उसमें बहुत सारी (नकारात्मक) प्रतिक्रियाएं हैं। एक होगा "यह गणित नहीं है, यह सिर्फ अच्छी समझ है।" (या बुरा भाव) जिसके बारे में मैं अपनी टिप्पणी को उपरोक्त भावना से सहमत होने के लिए संदर्भित करता हूं कि "सभी मानव गतिविधि गणित का एक रूप है"। एक और होगा "यह सवाल में मतलब गणित का प्रकार नहीं है।" यह लगभग निश्चित रूप से सच है और यहां मुझे वास्तव में उस व्यक्ति के साथ बहुत अधिक सहानुभूति है, जिसने कहा था "कम से कम मैंने 10 साल तक गणित को नहीं छुआ है,"। वह या वह गलत है, निश्चित रूप से, वे 10 वर्षों से गणित कर रहे हैं क्योंकि जब भी उन्होंने एक कार्यक्रम लिखा तो वे गणित कर रहे थे । उन्हें इसका एहसास नहीं था।
मैं वास्तव में अपने कार्यक्रमों में कुछ "वास्तविक गणित" का उपयोग करता हूं। मैंने हाल ही में एक मजेदार 3 डी आकार एक्सप्लोरर खोजा, जिसमें अनुमानों और अन्य परिवर्तनों का पता लगाने के लिए कुछ गणित का उपयोग करना शामिल था जिन्हें मुझे अपने डेटा पर लागू करना था। मैं अपने आप को वास्तव में quaternions कोडिंग खोजने के लिए खुश था! लेकिन निश्चित रूप से, जो गणित शामिल था वह गणित की तुलना में तुच्छ था जो मैं काम कर रहा था। यह "लिफाफे के पीछे" सामान था। उस प्रकार के मैथ्स, तब मैं इस भावना से सहमत हूं कि आप इसे तब उठाते हैं जब आपको इसकी आवश्यकता होती है, और यदि आपको विकिपीडिया पर मिल सकने वाली किसी चीज़ की अधिक आवश्यकता है तो आप इसे करने के लिए एक वास्तविक गणितज्ञ की तलाश करते हैं। हालाँकि, आदेश में कि आप इसे उठा सकते हैं जब आपको इसकी आवश्यकता होती है तब आपको कुछ सीखने की आवश्यकता होती है। वह चीज कुछ भी नहीं हो सकती है जिसे आप वास्तव में कभी भी उपयोग करते हैं, लेकिन यह जानने के बाद कि कुछ ऐसा होता है जिसे आप वास्तव में जीवन में बाद में उपयोग करते हैं। तो यह वह जगह है जहां मैं कोडर से असहमत हूं: आपको कुछ गणित सीखने की जरूरत है अगर आप कभी भी किसी गणित का उपयोग करने जा रहे हैं और आपको इसे गणितीय तरफ से सीखने की जरूरत है (जिसका अर्थ प्रमेय साबित नहीं होता है, वैसे)।
और इसलिए अंत में "गणित प्रोग्रामिंग है"। आप इन सभी चीजों को एक अच्छे प्रोग्रामर होने से सीख सकते हैं। और अगर आपने इन चीजों को सीख लिया है, तो आपको गणित बहुत आसान लगेगा क्योंकि आप समझ जाएंगे कि जब हम एक वेक्टर अंतरिक्ष में वेक्टर के बारे में बात करते हैं तो यह कक्षा का एक उदाहरण है, Vector
जिसका अर्थ है कि हम उन सभी चीजों को कर सकते हैं जो Vector
करना है वह उदाहरण: जोड़ना, घटाना, पैमाना और आगे। ऐसा इसलिए है कि मैं क्यों प्रोग्रामर के लिए गणित पढ़ाने के लिए प्यार होता। लेकिन, एक गणितज्ञ के रूप में बोलते हुए, मैं कहूंगा कि पहलेइनमें से, "एब्सट्रैक्शन", प्रोग्रामिंग की तुलना में गणित में सीखना आसान है क्योंकि गणित अमूर्तता की खोज है। जब भी हम कुछ व्यवहार देखते हैं तो हमारा प्रशिक्षण हमेशा यह पूछने के लिए होता है कि "उस चीज़ के बारे में ऐसा क्या है जो इसे उस तरह से व्यवहार करता है? क्या होगा अगर मैंने एक और चीज़ ली है जो समान थी, क्या यह उसी तरह से व्यवहार करेगा? उस चीज़ का कितना? क्या मुझे ऐसा व्यवहार करने से रोकने के लिए हारना होगा? " (इसे चरम पर ले जाने से "सेंटीपीड गणित" होता है - शब्द की खोज)। लेकिन हम ऐसा नहीं करते हैं (केवल) "वास्तविक दुनिया" ऑब्जेक्ट्स (जो भी वे हैं), हम ऐसा उन चीजों के साथ करते हैं जो पहले से ही सार हो चुके हैं।
यह काफी लंबे समय से चला आ रहा है, इसलिए मुझे एक क्लासिक गणितज्ञ चुटकुलों के साथ करीब से देखें:
एक गणितज्ञ और एक भौतिक विज्ञानी दोनों 24 आयामी अंतरिक्ष से जुड़े कुछ नए मॉडल पर एक संगोष्ठी में शामिल हुए। बाद में, वे इस पर चर्चा कर रहे थे और भौतिक विज्ञानी ने टिप्पणी की: "यह वास्तव में कठिन था। मेरा मतलब है कि कोई व्यक्ति 24-आयामी स्थान की कल्पना कैसे करता है?" जिस पर गणितज्ञ ने उत्तर दिया: "ओह, यह आसान है। बस n-आयामी अंतरिक्ष की कल्पना करें और फिर n = 24 सेट करें।"
2012-03-2 जोड़ा गया
इस उत्तर पर काफी टिप्पणियां आईं और कई तरह के विचार व्यक्त किए गए। इन्हें अब एक मध्यस्थ द्वारा इस समझ के साथ हटा दिया गया है कि मैं अपने उत्तर में उन्हें शामिल करने (या उनका जवाब देने) में लेने की कोशिश करूंगा।
हालांकि, मुझे यकीन नहीं है कि मैं कर सकता हूं। इस पृष्ठ पर उन टिप्पणियों और बाकी चीजों को पढ़ना, मैं केवल इस निष्कर्ष पर पहुंच सकता हूं कि गणित क्या है, इसके बारे में बहुत बड़ी गलतफहमी है। इसके अलावा, मैं इसे समझाने में सक्षम महसूस नहीं करता। सौभाग्य से, किसी ने पहले से ही लॉकहार्ट के विलाप से जुड़ा हुआ है, इसलिए मैं उस स्पष्टीकरण को टाल दूंगा। जब भी मैं इसे अलग तरह से रख सकता था (जैसा कि मैं एक वैज्ञानिक वातावरण में बड़ा हुआ हूं, मैंने गणित के प्रायोगिक स्वरूप पर अधिक जोर दिया होगा), मुझे नहीं लगता कि मैं इसे बेहतर तरीके से रख सकता था ।
मुझे अभी भी लगता है कि मैं कुछ जोड़ सकता हूं। गणित के साथ-साथ गलतफहमी भी है कि "गणित करने" का अर्थ क्या है , इसके बारे में गलतफहमी भी है। मैं दो लगभग विरोधाभासी रुख देखता हूं:
गणित समीकरणों और सूत्रों के बारे में है। इसलिए इसका अध्ययन करने की कोई आवश्यकता नहीं है क्योंकि विकिपीडिया मौजूद है (यह यूलर के एपोक्रिफ़ल चैलेंज से डाइडरॉट के लिए लगभग विपरीत है )।
गणित प्रमेयों और परिभाषाओं के बारे में है। इसलिए इसे अध्ययन करने की कोई आवश्यकता नहीं है क्योंकि प्रोग्राम कभी भी कुछ भी साबित नहीं करते हैं (जो कि एक पूर्णता के रूप में के बारे में है ... पसंदीदा पसंदीदाता यहां डालें)।
जब भी दो रुख एक दूसरे के विपरीत होते हैं, वे एक ही स्थान पर समाप्त हो जाते हैं: किसी भी गणित को सीखने वाले प्रोग्रामर का कोई मतलब नहीं है - और सबसे निश्चित रूप से एक गणितज्ञ से नहीं! आखिर वे किसी चीज के बारे में क्या जानते हैं? कुछ भी जो एक प्रोग्रामर को वास्तव में जानने की जरूरत है, वह विकिपीडिया में पाया जा सकता है, या किसी और को छोड़ दिया जा सकता है।
ऊपर, मैंने खुद को एक कार्गो कल्ट प्रोग्रामर के रूप में वर्णित किया। मैं शर्त लगाता हूं कि आप में से अधिकांश ने अपने आप को एक निजी गम दिया था और सोचा था, "आह हां, मुझे यकीन है कि मुझे पता है कि आपके कार्यक्रम तब क्या दिखते हैं।" आपको शायद थोड़ा स्मॉग और श्रेष्ठ लगा (हालांकि मुझे यकीन है कि आपको स्मॉग और बेहतर महसूस करने में बुरा लगा )।
मैंने ऊपर जो वर्णन किया है वह कार्गो कल्ट गणित है।
इसलिए जब मैं कहता हूं कि आपको गणित को समझने के लिए थोड़ा गणित सीखना चाहिए कि गणित कैसे काम करता है, तो मैं इसे ठीक उसी कारण से कह रहा हूं जैसे कि अगर आप थोड़ा सा कोड देखते हैं जो मैंने लिखा था: "आपका जीवन कितना आसान है यदि आप StackOverflow से कट-एंड-पेस्टिंग कोड को रोक देंगे और यह ठीक से कैसे करना है, इसके बारे में थोड़ा सा सीखा। "
हालांकि, सबसे महत्वपूर्ण बात यह है कि आपको इसे गणितज्ञों से सीखना चाहिए। ऐसा क्यों? यहाँ एक सादृश्य है। मैं जिस भाषा में सबसे ज्यादा माहिर हूं वह TeX है। (यह सब कहते हैं, वास्तव में!)। अब, मान लीजिए कि मैं TeX के बारे में कुछ और सीखना चाहता हूं और ऐसा सिर्फ इसलिए होता है कि डॉन नूथ शहर में है और उसने TeX पर कुछ ट्यूटोरियल देने की पेशकश की है। या मैं इसके बारे में विकिपीडिया पर पढ़ सकता था। या हो सकता है कि यह पर्ल और लैरी वॉल, या सी # (क्या यह सही है?) और जॉन स्कीट। यह अच्छी तरह से हो सकता है कि ये लोग सबसे अच्छे शिक्षक नहीं हैं , लेकिन वे निश्चित रूप से उस राशि के लिए बनाते हैं जो वे जानते हैं!
और यही गणितज्ञ हैं। हम वास्तविक भाषा लिखने वाले लोग हैं, जो तब आपके द्वारा उपयोग किए जाने वाले पुस्तकालयों को लिखते हैं। बेशक, आपको यह जानने की ज़रूरत नहीं है कि एक प्रमेय कैसे साबित किया जाए - आप एक पुस्तकालय लिखने नहीं जा रहे हैं! लेकिन अगर आप थोड़ा सा जानते हैं कि हम कैसे सोचते हैं, तो इससे आपको यह समझने में मदद मिल सकती है कि हमने पुस्तकालय को जिस तरह से लिखा है, और यदि आप समझते हैं कि यह आपको इसका बेहतर उपयोग करने में मदद कर सकता है।
विकिपीडिया पर समीकरणों को देखने और पोंकारे अनुमान को साबित करने के बीच एक मध्य मैदान है, जैसे - लॉकहार्ट के विलाप का उल्लेख करने के लिए - "मैं वास्तव में कला के बारे में ज्यादा नहीं जानता, लेकिन मुझे पता है कि क्या पसंद है" और मोनेट होने के नाते, और "कहां 'कोई भी' कुंजी है?" और डॉन नथ। यदि आप अभी भी विश्वविद्यालय में हैं, तो आपके पास उन लोगों से सीखने का एक अद्भुत अवसर है जो अपने क्षेत्र के विशेषज्ञ हैं और जो किसी कारण से - अपना समय आपको समझाने के लिए खर्च करने को तैयार हैं।
दूसरे बिंदु पर मैं थोड़ा विस्तार करना चाहता था इसलिए एक प्रोग्रामर के रूप में आपको थोड़ा और गणित सीखने से डरना नहीं चाहिए। यह डीप कनेक्शंस नहीं हैं, न ही उपयोगिता। यह है कि कंप्यूटर को प्रोग्राम करने की आपकी क्षमता सीधे आपको गणित सीखने में मदद कर सकती है। मैं सिर्फ कुछ का उल्लेख करना चाहता हूं।
चर को समझना। इतने सारे लोग सरल बयानों से भ्रमित हो जाते हैं जैसे "लेट एन नेचुरल नंबर ..."। या "आइपिलसन> 0"। गणित में ऐसी जगहें हैं जहाँ किसी चर के दायरे को याद रखना महत्वपूर्ण है । प्रोग्रामिंग में ये सभी आम हैं। एक कार्यक्रम में एक गणितीय कथन का अनुवाद करना सीखें और आपको यह पता लगाना बहुत आसान होगा कि क्या है।
प्रमाण की प्रकृति। यदि आपने कभी कोई परीक्षण लिखा है, या किसी अन्य व्यक्ति द्वारा उपयोग किए जाने के लिए एक कार्यक्रम लिखा है, तो आप प्रमाणों के मूल को समझते हैं। जब आप ऐसा करते हैं, तो आपको यह जानना होगा कि उपयोगकर्ता जो कुछ भी डालता है, आप उससे निपट सकते हैं (अनिवार्य xkcd संदर्भ यहां डालें)। यह सब एक सबूत है! एक प्रदर्शन है कि जो भी "उपयोगकर्ता / ब्रह्मांड" डालता है, वह वक्तव्य धारण करेगा। प्रायोगिक विशेषज्ञ "यदि यह सामान्य परिस्थितियों में काम करता है, तो यह सही होगा" पर झुक जाएगा, लेकिन प्रोग्रामर जानते हैं कि हमेशा वह बच्चा होता है जो Alt + G + Shift + ÅØÆ की कोशिश करेगा कि क्या होता है।
सूखी। आपको इसे तोड़ने के लिए क्षमा करें, लेकिन हमने आपको नहीं, बल्कि इसका आविष्कार किया। सहस्राब्दियों से हम "खुद को दोहरा नहीं रहे हैं"। इसलिए मेरे पास मेरी अलमारियों पर यूक्लिड के तत्वों की एक प्रति है और यह अभी भी उपयोगी है ।
और वहाँ अधिक है। अगर मुझे प्रोग्रामिंग के बारे में कुछ और पता था, तो मैं "प्रोग्रामर्स के लिए गणित" नामक एक किताब लिखूंगा, जहां उद्देश्य "गणित जिसे प्रोग्रामर को जानना चाहिए" नहीं था, लेकिन "गणित जिसे हर किसी को जानना चाहिए, लेकिन प्रोग्रामर के लिए अनुकूलित" । लेकिन मैं शायद इसे लिखने के लिए प्रोग्रामिंग के बारे में कभी नहीं जानूंगा - जब तक कि कोई मेरे साथ सहयोग करने की पेशकश न करे!
मैं इसे वहीं छोड़ दूँगा। शायद अगर मैंने ज्यादा सोचा, तो मैंने जो लिखा है उसे बदल दूंगा; उम्मीद है कि मैं इसे बेहतर तरीके से समझाऊँगा। एक महीने के समय में मैं इसके कुछ हिस्सों से असहमत हो सकता हूं। यदि कोई आगे बहस करना चाहता है, या अन्यथा टिप्पणी करना चाहता है, तो शायद यहां टिप्पणियों में ऐसा न करें। आपको पता है कि मुझे कहां ढूंढना है ।