Srinivasa Ramanujan चार्ल्स एफ. विल्सन की खींची इस फोटो में श्रीनिवास रामानुजन बीच में और उनके गुरू जी. एच. हार्डी तस्वीर में सबसे दायीं तरफ हैं।

बात 1919 की है जब श्रीनिवास रामानुजन लंदन में थे। उनके मित्र और गुरू, जी. एच. हार्डी उनसे मिलने एक टैक्सी से गये। उस टैक्सी का नंबर था 1729। बातों बातों में उन्होंने रामानुजन को बताया, “मेरी टैक्सी का नंबर बड़ा साधारण था। यह किसी बुरे वक्त का संकेत तो नहीं”। “नहीं बिल्कुल नहीं”, रामानुजन बोले, “यह कोई साधारण संख्या नहीं। यह सबसे छोटी संख्या है, जो बनती है दो संख्याओं के घनों को जोड़कर, दो अलग-अलग तरीकों से।”

आइये, हम भी कंप्यूटर के साथ बातों-बातों में ऐसी ही खास संख्याएं ढूंढें।

कंप्यूटर पर फायरफॉक्स ब्राउज़र खोलें, Ctrl Shift K एक साथ दबाएं, और गणित का कोई सवाल टाईप करें।

>> 9 * 9 * 9;
729

>> 10 * 10 * 10;
1000

>> 9 * 9 * 9 + 10 * 10 * 10;
1729

कंप्यूटर के साथ हम अपनी खोज और भी आसान कर सकते हैं। हम संख्याओं को नाम दे सकते हैं और फिर उन संख्याओं को याद करने के बजाय उनका नाम ले सकते हैं। यह नाम चर कहलाते हैं।

>> let cube9 = 729;
>> cube9;
729
>> let cube10 = 1000;
>> cube10;
1000
>> cube9 + cube10;
1729
>> cube10 - cube9
271

हम संख्याओं को नाम देने के साथ-साथ उन्हें बनाने के तरीके को भी नाम दे सकते हैं। और फिर कंप्यूटर को काम का पूरा तरीका बार-बार बताने के बजाय, बस तरीके का नाम ही ले सकते हैं। तरीकों को दिये गये नाम फलन कहलाते हैं।

>> let cube = function (n) {
    return n * n * n;
}
>> cube(9);
729
>> cube(10);
1000
>> cube(9) + cube(10);
1729
>> cube(8) + cube(11);
1843
>> cube(cube(10))
1000000

कोई संख्या खास है कि नहीं यह पता करने का काम अभी भी हमें ही करना पड़ रहा है। इसके बजाय हम कंप्यूटर को बता सकते हैं कि कैसे पता लगाएं कि कोई संख्या खास है कि नहीं। जिससे वो खुद पता लगा कर अलग-अलग स्थिति में अलग-अलग काम कर सकें।

>> if (cube(12) + cube(1) == 1729) {
    console.log('sum of 12 cubed and 1 cubed is 1729');
} 
>> if (cube(13) + cube(0) != 1729) {
    console.log('13 cubed is not 1729');
} else {
    console.log('13 cubed is 1729');
}

किसी काम को बार-बार कराने के लिये हम उस काम को बार-बार बता सकते हैं।

>> console.log('जय हो!');
जय हो!
>> console.log('जय हो!');
जय हो!
>> console.log('जय हो!');
जय हो!

या कंप्यूटर को कह सकते हैं कि उस एक काम को बार-बार करते रहें।

>> while (true) {
    console.log('जय हो!');
}

किसी काम को हमेशा के लिये करते रहने के बजाय हम कंप्यूटर को कह सकते हैं कि काम को वापस करने से पहले जांच कर लें कि काम को आगे करना भी है या नहीं।

>> let n = 0;
>> while (n < 10) {
    console.log(n);
    n = n+1;
}

एक जैसी बहुत सारी चीज़ों पर कुछ काम करना हो तो सबके अलग-अलग नाम रखने के बजाय हम उन चीज़ों की एक सूची बना सकते हैं। o

>> let greetings = ['सलाम', 'नमस्ते', 'हैलो'];
>> let fib = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89];
>> console.log(names[0]);
सलाम
>> console.log(names[1]);
नमस्ते
>> console.log(names.length);
3
console.log(names[names.length-1]);
हैलो
>> greetings.push('सत् श्री अकाल');
>> greetings.push('सत् श्री अकाल');
>> console.log(greetings.length);
5
>> console.log(greetings[3]);
सत् श्री अकाल
>> console.log(greetings[4]);
सत् श्री अकाल
>> greetings.forEach(function(item, index, array) {
    console.log(item, index);
});
>> console.log(greetings.indexOf('सलाम'));
0
>> console.log(greetings.indexOf('अलविदा'));
-1

यह एक फलन है जो हमें 9999 तक की सभी ऐसी संख्याएं बता देता है जो 2 संख्याओं के घनों से बनती हैं।

>> let taxiNos = function(list) {
    let nos = [];
    list.forEach(function(item1, index1, array1) {
        list.forEach(function(item2, index2, array2) {
            let sum = cube(item1) + cube(item2);
            // यदि sum चार अंकों तक का ही है और अभी तक नहीं मिला है
            if (sum <= 9999 && nos.indexOf(sum) == -1) {
                nos.push(sum);
            }
        });
    });
    return nos;
}
>> taxiNos(numbersUpto(1, 21))

श्रीनिवास रामानुजन ऐसी संख्याऐं बिना कंप्यूटर के आसानी से ढूंढ लेते थे और उनके लिये शायद हर संख्या खास थी। आज वो हमारे बीच तो नहीं, पर हमारे साथ बात करने के लिये कंप्यूटर तो है।

और जानने के लिये हम ये वेबसाईट देख सकते हैं।

My helpful screenshot