শূন্যের গোলকধাঁধা
পাঠকের লেখা
গণিত মহাবিশ্বের ভাষা। এটি এমন এক ভাষা যা যুক্তি, ও অকাট্য নিয়মের ওপর দাঁড়িয়ে আছে। কিন্তু এই সাজানো-গোছানো সাম্রাজ্যে এমন একটি অমীমাংসিত বিষয় আছে, যার সমাধান করতে গেলে বিখ্যাত গণিতবিদদের কপালেও চিন্তার ভাঁজ পড়ে যায়। খোদ কম্পিউটারও ‘Error’ বা ভুল সংকেত দিয়ে হার মেনে নেয়! এটি এমন এক সমস্যা, যেখানে ভেঙে পড়ে গণিতের প্রচলিত সব নিয়ম। সমস্যাটি হলো, শূন্য দিয়ে ভাগ।
আপাতদৃষ্টিতে মনে হতে পারে এর উত্তর ১ বা ০ হবে। কিন্তু আসলে এর মান নির্ণয় করতে গেলে হাজারো সমস্যার সৃষ্টি হয়। আধুনিক গণিত কেন এই সামান্য শূন্যের কাছে হার মেনে একে অনির্ণেয় বা অসংজ্ঞায়িত ঘোষণা করেছে, চলুন সেই রোমাঞ্চকর অভিযানের গভীরে প্রবেশ করি।
মায়া সভ্যতার ক্যালেন্ডারেও শূন্যের ব্যবহার ছিল। কিন্তু তারাও শূন্যকে আলাদা সংখ্যা হিসেবে চিন্তা করেনি। শূন্যকে প্রথমবারের মতো সংখ্যার মর্যাদা দিয়েছেন ভারতীয় গণিতবিদেরা।
শূন্যের জন্মকথা
শূন্যের ইতিহাসের দিকে তাকালে দেখা যায়, আজ থেকে প্রায় পাঁচ হাজার বছর আগে মেসোপটেমীয়রা যখন ৬০-ভিত্তিক সংখ্যা পদ্ধতিতে কোনো হিসাব লিখত, তখন কোনো নির্দিষ্ট কলাম বা ঘর খালি থাকলে তারা সেখানে কেবল একটি ফাঁকা জায়গা রেখে দিত। পরে ব্যবিলনীয়রা এই অস্পষ্টতা দূর করতে সংখ্যার মাঝখানের ফাঁকা জায়গা বোঝাতে একটি বিশেষ চিহ্নের ব্যবহার শুরু করে। উদাহরণস্বরূপ, আজকের দিনে আমরা যেভাবে ১০১ লিখতে ১ এবং ১-এর মাঝে একটি শূন্য ব্যবহার করি, তারা ঠিক সেভাবেই দুটি সংখ্যার মাঝে একটি প্রতীক বসাত। তবে তাদের এই শূন্য বর্তমানের মতো স্বতন্ত্র কোনো সংখ্যা ছিল না; বরং এটি ছিল কেবল একটি অবস্থানগত চিহ্ন।
মায়া সভ্যতার ক্যালেন্ডারেও শূন্যের ব্যবহার ছিল। কিন্তু তারাও শূন্যকে আলাদা সংখ্যা হিসেবে চিন্তা করেনি। শূন্যকে প্রথমবারের মতো সংখ্যার মর্যাদা দিয়েছেন ভারতীয় গণিতবিদেরা।
শূন্য নিয়ে প্রথম যিনি কাজ করেছিলেন বলে জানা যায়, তিনি হলেন আর্যভট্ট। তখনকার গণিতবিদেরা এখনকার মতো লিখতেন না। তাঁরা লিখতেন ছন্দে ছন্দে। আর্যভট্ট তাঁর বইয়ে ছন্দে ছন্দে লিখেছিলেন, ‘স্থানম স্থানম দশ গুণম’। মানে, স্থানে স্থানে দশ ঘর করে গুণ করতে হয়। বর্তমানে আমরা যে স্থানীয় মান এবং দশ-গুণোত্তর পদ্ধতি নিয়ে পড়াশোনা করি, তিনি আসলে তা-ই বোঝাতে চেয়েছিলেন। এর মাঝেই লুকিয়ে ছিল শূন্য।
তবে প্রথমবারের মতো শূন্যকে যিনি একটি পরিপূর্ণ সংখ্যা হিসেবে তুলে ধরেছেন, তিনি হলেন ব্রহ্মগুপ্ত। তাঁর একটি বিখ্যাত বই ছিল ব্রহ্মস্ফুটসিদ্ধান্ত, প্রকাশিত হয় ৬২৮ খ্রিষ্টাব্দে। এই বইয়ে তিনি প্রথম শূন্যকে সংখ্যার মর্যাদা দেন এবং শূন্য দিয়ে কোনো সংখ্যাকে যোগ, বিয়োগ ও গুণ করলে কী হয়, তা দেখান। কিন্তু সেখানে ০ ÷ ০ = ০ বলা হয়েছিল, যা পরে ভুল প্রমাণিত হয়। এরপর ভাস্করাচার্য প্রস্তাব করেছিলেন, কোনো সংখ্যাকে শূন্য দিয়ে ভাগ করলে তা অসীম হয়। এটি আধুনিক লিমিটের ধারণার কাছাকাছি। ভারতীয় এই জ্ঞান আল-খোয়ারিজমির মাধ্যমে আরব বিশ্বে পৌঁছায় এবং সেখান থেকে ফিবোনাচ্চির হাত ধরে প্রবেশ করে ইউরোপে। শূন্য নিয়ে অনেকে অনেক কাজ করলেও কেউ-ই শূন্য দিয়ে কোনো সংখ্যাকে ভাগ করলে কী হয়, তা সঠিক করে বলে যেতে পারেননি।
ব্রহ্মগুপ্ত তাঁর ব্রহ্মস্ফুটসিদ্ধান্ত বইয়ে প্রথম শূন্যকে সংখ্যার মর্যাদা দেন এবং শূন্য দিয়ে কোনো সংখ্যাকে যোগ, বিয়োগ ও গুণ করলে কী হয়, তা দেখান।
গণিতের স্বতঃসিদ্ধ নিয়মে ফাটল
এবার চলে আসি মূল বিষয়ে। শূন্য দিয়ে কেন ভাগ করা যায় না কেন? পঞ্চম শ্রেণিতে পড়ার সময় স্কুলে প্রথম জানতে পারি, ০ দিয়ে ভাগ করা যায় না। কিন্তু কেন যায় না, তা নিয়ে মনে প্রবল কৌতূহল জাগে। তাই এ নিয়ে বিস্তারিত জানার চেষ্টা করি এবং কিছু চমৎকার ব্যাখ্যা সম্পর্কে জানতে পারি, যা আমার কৌতূহলকে বহুগুণ বাড়িয়ে দেয়।
প্রথমেই দেখে নিই, ০ দিয়ে ভাগ করলে ঝামেলাটা ঠিক কোথায় বাধে।
মনে করি, a = b।
উভয় পাশে a দিয়ে গুণ করি। তাহলে পাই, a2 = ab।
এবার দুই পাশ থেকে b2 বাদ দিয়ে লেখা যায়, a2 - b2 = ab - b2
এখন বাঁ পাশে a2 - b2-এর সূত্র বসিয়ে পাই (a + b) (a - b) এবং ডান পাশ থেকে b কমন নিলে পাই b(a - b)।
অর্থাৎ, (a + b) (a - b) = b(a - b)।
উভয় পাশ থেকে (a-b) কাটাকাটি করলে অবশিষ্ট থাকে: a + b = b।
যেহেতু আমরা শুরুতেই ধরে নিয়েছিলাম a = b, তাহলে a-এর জায়গায় b বসিয়ে আমরা লিখতে পারি: b + b = b বা 2b = b।
উভয় পাশ থেকে b কাটাকাটি করলে থাকে: ২ = ১!
আমরা জানি, শূন্যের সঙ্গে যাকেই গুণ করি না কেন, তার ফল শূন্য হয়। তাই সমীকরণের এক পাশে ১ এবং অন্য পাশে ১০০ গুণ করে পাই: ১ × ০ = ১০০ × ০।
প্রমাণ হয়ে গেল ১ ও ২ সমান! এখন এর উভয় পাশে ১০০ দিয়ে গুণ করলে পাবো ১০০ = ২০০! মানে, কারও কাছ থেকে ২০০ টাকা ধার নিয়ে ১০০ টাকা ফেরত দিলেই চলবে! অথবা, ২০০ টাকার জিনিস কিনে ১০০ টাকা পরিশোধ করলেই বিক্রেতা খুশি! কিন্তু কথা হচ্ছে, এটা কি ঠিক হলো? অবশ্যই না। কিছু একটা ভুল নিশ্চয়ই হয়েছে।
ভুলটা আসলে কোথায়? আমরা শুরুতেই ধরে নিয়েছিলাম a = b, অর্থাৎ (a - b) = 0। যখনই সমীকরণের দুই পাশ থেকে (a - b) কাটাকাটি করেছি, তখন উভয় পক্ষকে ০ দিয়ে ভাগ করেছি! আর ঠিক এখানেই ঘটেছে সবচেয়ে বড় গাণিতিক সমস্যাটি।
একটু সহজভাবে বুঝতে আরেকটি কাজ করা যাক। আমরা জানি, শূন্যের সঙ্গে যাকেই গুণ করি না কেন, তার ফল শূন্য হয়। তাই সমীকরণের এক পাশে ১ এবং অন্য পাশে ১০০ গুণ করে পাই: ১ × ০ = ১০০ × ০।
এবার উভয় পক্ষ থেকে ০ কাটাকাটি করলে পাই: ১ = ১০০! অর্থাৎ, সবাই সবার সমান! তাই আমরা চাইলেও কোনো কিছুকে ০ দিয়ে ভাগ করতে পারি না!
আমরা যে শুধু ০÷০ করতে পারি না তা-ই নয়, এটি করতে গেলে গণিতের স্বতঃসিদ্ধ নিয়মের বারোটা বেজে যায়। আমরা জানি, যেকোনো সংখ্যাকে সেই সংখ্যা দিয়ে ভাগ করলে ভাগফল ১ হয়। সে হিসাবে ০/০ = ১ হওয়ার কথা। আবার শূন্যকে যেকোনো সংখ্যা দিয়ে ভাগ করলে ভাগফল ০ হয়। সে হিসাবে ০/০ = ০ হওয়ার কথা। তার মানে, ০/০-এর ক্ষেত্রে এই দুটি মৌলিক স্বতঃসিদ্ধ নিয়ম একে অপরের সঙ্গে সরাসরি সংঘর্ষে লিপ্ত হয়।
উভয় পক্ষ থেকে ০ কাটাকাটি করলে পাই: ১ = ১০০! অর্থাৎ, সবাই সবার সমান! তাই আমরা চাইলেও কোনো কিছুকে ০ দিয়ে ভাগ করতে পারি না!
অসংজ্ঞায়িত বনাম অনির্ণেয়
গণিতে ভাগ বলতে বোঝায় গুণের বিপরীত। আমরা যদি ধরে নিই, শূন্য দিয়ে ভাগ করা সম্ভব এবং এর ফল একটি নির্দিষ্ট সংখ্যা k, তাহলে যেকোনো সংখ্যা n ≠ 0-এর জন্য n ÷ 0 = হওয়ার কথা। অর্থাৎ, n = k × 0 হওয়ার কথা। কিন্তু আমরা জানি, কোনো সংখ্যাকে ০ দিয়ে গুণ করলে গুণফল ০ হয়। তাহলে আমরা পাই, n = 0। কিন্তু আমরা তো শুরুতেই ধরে নিয়েছিলাম n ≠ 0। এই যে একটি বৈপরীত্য তৈরি হলো, এটি সাধারণ বীজগণিত দিয়ে সমাধান করা যায় না।
পাটিগণিতে আবার ০ দিয়ে ভাগ করা কঠোরভাবে নিষিদ্ধ। পাটিগণিতে ভাগ মানে একটি সংখ্যা থেকে আরেকটি সংখ্যাকে বারবার বিয়োগ করা। ধরা যাক, ৬ ÷ ২ = ৩। এর মানে হলো, ৬ থেকে ২-কে ৩ বার বিয়োগ করলে আমরা ০-তে পৌঁছাতে পারব। এখন যদি আমি ০ ÷ ০ করতে চাই, তবে প্রশ্ন হবে: ০ থেকে ০-কে কতবার বিয়োগ করলে ০ হবে?
যদি বলি ১ বার (০ - ০ = ০), তবে উত্তর ১। যদি বলি ১০০ বার, তাও কিন্তু ঠিক। যদি বলি শূন্যবার, সেটাও ঠিক!
পাটিগণিতে একটি অঙ্কের কেবল একটিই নির্দিষ্ট উত্তর থাকতে হয়, কিন্তু এখানে কোনো সুনির্দিষ্ট উত্তর পাওয়া যাচ্ছে না। পাটিগণিতে এমন কোনো নিয়ম নেই, যা একই সঙ্গে অনেক ফলাফল দিতে পারে। পাটিগণিত যদি একে অনুমতি দেয়, তবে পুরো গাণিতিক কাঠামো অস্থিতিশীল হয়ে পড়বে এবং আমরা কোনো সঠিক হিসাবে পৌঁছাতে পারব না। তাই পাটিগণিত একে সরাসরি নিষিদ্ধ করে দেয়।
পাটিগণিতে একটি অঙ্কের কেবল একটিই নির্দিষ্ট উত্তর থাকতে হয়, কিন্তু এখানে কোনো সুনির্দিষ্ট উত্তর পাওয়া যাচ্ছে না। পাটিগণিতে এমন কোনো নিয়ম নেই, যা একই সঙ্গে অনেক ফলাফল দিতে পারে।
অন্য কোনো সংখ্যাকে ০ দিয়ে ভাগ করলে সেটি হয় অসংজ্ঞায়িত বা Undefined। এটি বোঝার জন্য একটি উদাহরণ দেওয়া যাক।
ভাগ করা মানে ভাজ্যকে ভাজকের গুণাত্মক বিপরীত দ্বারা গুণ করা। অর্থাৎ, a-কে b দ্বারা ভাগ করা মানে a × b‑1। অতএব, কোনো সংখ্যাকে ০ দিয়ে ভাগ করা মানে তাকে ১/০ দিয়ে গুণ করা। তাই ১/০-এর মান বের করতে পারলেই আমরা ০ দিয়ে ভাগ করার সমস্যাটি সমাধান করে ফেলতে পারব!
এখন চিন্তা করি, আমাদের কাছে এমন একটি মেশিন আছে, যেখানে কোনো সংখ্যা দেওয়া হলে মেশিনটি সেটিকে উল্টে দিয়ে ফলাফল দেখায়। মানে এই মেশিনে ৪ দিলে পাবো ১/৪ = ০.২৫। ২ দিলে পাবো ১/২ = ০.৫। বোঝাই যাচ্ছে, এই মেশিনে ০ দিলে আমরা পাবো ১/০।
আমরা এখন একটু একটু করে শূন্যের দিকে অগ্রসর হব।
১ দিলে পাই ১/১ = ১।
০.৫ দিলে পাই ১/০.৫ = ২।
০.০১ দিলে পাই ১০০।
০.০০০১ দিলে ১০০০০।
০.০০০০০০১ দিলে ১ কোটি!
এভাবে আমরা যত শুন্যের দিকে যেতে থাকব, ফলাফলও বাড়তে বাড়তে ধনাত্মক অসীমের দিকে। কিন্তু আমরা কখনো ০-তে পৌঁছাতে পারব না। ফলে ফলাফলও অসীমে পৌঁছাবে না।
এতটুকু হলেও সমস্যা ছিল না; আমরা বলতে পারতাম ১/০-এর মান অনেক বড় বলে নির্দিষ্ট করে বলা সম্ভব নয়। কিন্তু আমরা যদি ৪, ২, ১... এভাবে ০-এর দিকে না এগিয়ে -৪, -২, -১... এভাবে শূন্যের দিকে এগোই; তাহলেই চরম বিপদে পড়ব! কারণ:
-৪ দিলে আমরা পাব ১/-৪ = -০.২৫।
-২ দিলে -০.৫।
-১ দিলে -১।
-০.১ দিলে -১০।
এভাবে আমরা ঋণাত্মক দিক থেকে ০-এর দিকে যেতে থাকলে ফলাফলও পৌঁছে যাবে ঋণাত্মক অসীমের দিকে!
ভাগ করা মানে ভাজ্যকে ভাজকের গুণাত্মক বিপরীত দ্বারা গুণ করা। অর্থাৎ, a-কে b দ্বারা ভাগ করা মানে a × b‑1। অতএব, কোনো সংখ্যাকে ০ দিয়ে ভাগ করা মানে তাকে ১/০ দিয়ে গুণ করা।
আর ঠিক এখানেই বাধে সবচেয়ে বড় ঝামেলা। ধনাত্মক দিক থেকে এগোলে আমরা পেলাম +√, আবার ঋণাত্মক দিক থেকে এগোলে পেলাম -√! তাহলে ১/০-এর আসল মানটা কত? এর মান কেউ জানে না। এর উত্তর ভাগের সাধারণ সংজ্ঞা দিয়ে দেওয়া যায় না, তাই এটি অসংজ্ঞায়িত। +√ এবং -√ হলো এর সীমান্তিক মান বা লিমিটিং ভ্যালু।
মজার ব্যাপার হলো, ১/০-এর মান কত, লিমিট তা নিয়ে কাজ করে না; এটি কেবল নির্দেশ করে, শূন্যের দিকে যেতে থাকলে মানটি কোন দিকে যাবে। লিমিট বলতে বোঝায়, এর মান নির্দিষ্ট সীমার কাছাকাছি যেতে থাকবে, কিন্তু সীমানাটিকে কখনো স্পর্শ করবে না।
০/০-এর নির্দিষ্ট ক্ষেত্রে পরিস্থিতি আরও জটিল। একে ক্যালকুলাস অসংজ্ঞায়িত হিসেবে শ্রেণিবদ্ধ করার পরিবর্তে কেবল অনির্ণেয় রূপ হিসেবে শ্রেণিবদ্ধ করে।
যদি ০/০ কোনো সংখ্যা k-এর সমান হয়, তাহলে 0 = k × 0, যা k-এর যেকোনো মানের জন্যই সত্য। এর মানে k-এর মান ১, ২, ৫ অথবা অন্য যেকোনো সংখ্যা হতে পারে, যা এর মানকে অস্পষ্ট এবং অনির্ণেয় করে তোলে।
লজিক্যালি মনে হতে পারে, ওপরে ০ থাকলে তো ভাগফল ০ হয়, তাই এর উত্তর ০ হওয়া উচিত। আবার একটু আগের বর্ণনা অনুযায়ী মনে হতে পারে, এটি হবে অসংজ্ঞায়িত এবং এর দুটি সীমান্তিক মান হবে +√ ও -√। কিন্তু মাত্রই দেখলাম, এর মান ১, ২, ৫, ১০০, ১০০০... সবই হতে পারে। আবার আমরা এ-ও জানি, ওপরে-নিচে একই সংখ্যা থাকলে সেটা কাটাকাটি হয়ে উত্তর হয় ১, তাই ০/০-এর মান ১-ও হতে পারে!
এসব ঝামেলা দেখে গণিতবিদেরা অবশেষে ঘোষণা দিলেন, ০/০-এর মান আমরা নির্ণয় করতে পারি না, তাই এটি অনির্ণেয়। মানে, এটি একই সঙ্গে অসংজ্ঞায়িত এবং অনির্ণেয়!
লিমিট বলতে বোঝায়, এর মান নির্দিষ্ট সীমার কাছাকাছি যেতে থাকবে, কিন্তু সীমানাটিকে কখনো স্পর্শ করবে না।
কম্পিউটার ও পদার্থবিজ্ঞানে শূন্যের বিভ্রাট
কম্পিউটার শূন্য দিয়ে ভাগের উত্তরে ‘Error’ বা ‘Not a Number’ দেখায়। কম্পিউটার আসলে ভাগকে বারবার বিয়োগ হিসেবে বিবেচনা করে। ০/০ করতে গেলে যতবারই বিয়োগ করা হোক না কেন, ফল ০-ই আসে। তখন এটি একটি অসীম চক্রের মধ্যে পড়ে যায় এবং প্রোগ্রাম ক্র্যাশ করে।
আমি নিজে কম্পিউটারে পাইথন প্রোগ্রামিং ভাষায় ০/০-এর সমাধান বের করার চেষ্টা করেছিলাম। সেখানে ‘ 0/0’ ইনপুট দিলে প্রোগ্রামটি ক্র্যাশ করে এবং নিচের এরর মেসেজটি দেখায়:
Traceback (most recent call last):
File “<python-input-0>”, line 1, in <module>
0/0
~^~
ZeroDivisionError: division by zero
পদার্থবিজ্ঞানে ০ দিয়ে ভাগ করলে তা পরম বিন্দু বা সিংগুলারিটিতে রূপ নেয়। আইনস্টাইনের সাধারণ আপেক্ষিকতা তত্ত্বে মহাকর্ষ বলের একটি সমীকরণ আছে, যেখানে দূরত্ব r নিচে থাকে। যখন কোনো নক্ষত্র সংকুচিত হয়ে অত্যন্ত ক্ষুদ্র বিন্দুতে পরিণত হয়, তখন তার ব্যাসার্ধ শূন্যের কাছাকাছি চলে যায়। সমীকরণ অনুযায়ী মহাকর্ষ বল দূরত্বের বর্গের ব্যস্তানুপাতিক। যখন দূরত্ব r = 0 হয়, তখন বলের মান হয়ে যায় ১/০ = অসীম।
অর্থাৎ, কৃষ্ণগহ্বরের কেন্দ্রে ঘনত্ব এবং মহাকর্ষ বল অসীম হয়ে যায়। এই বিন্দুটিকেই বলা হয় সিংগুলারিটি।
যখন কোনো নক্ষত্র সংকুচিত হয়ে অত্যন্ত ক্ষুদ্র বিন্দুতে পরিণত হয়, তখন তার ব্যাসার্ধ শূন্যের কাছাকাছি চলে যায়। সমীকরণ অনুযায়ী মহাকর্ষ বল দূরত্বের বর্গের ব্যস্তানুপাতিক।
বিগ ব্যাং থিওরি অনুযায়ী, মহাবিশ্ব যখন শুরু হয়েছিল, তখন এটি একটি অসীম ঘনত্বের বিন্দু ছিল। সেই মুহূর্তে মহাবিশ্বের আয়তন ছিল শূন্য। ফলে ঘনত্ব নির্ণয়ের সূত্রে (ঘনত্ব = ভর/আয়তন) নিচে চলে আসে।
এই ০-এর কারণেই আমরা এখন বিগ ব্যাংয়ের আগের অবস্থা কিংবা ব্ল্যাকহোলের সিংগুলারিটিকে পুরোপুরি ব্যাখ্যা করতে পারি না। এখানে বর্তমান পদার্থবিজ্ঞানের সূত্রগুলো সব তাসের ঘরের মতো ভেঙে পড়ে। যখনই কোনো সমীকরণে শূন্য দিয়ে ভাগ চলে আসে, পদার্থবিজ্ঞানীরা ধরে নেন তাদের ওই সূত্রটি আর কাজ করছে না। সেখানে নতুন কোনো উন্নত তত্ত্বের প্রয়োজন। বর্তমানে বিজ্ঞানীরা অনুমান করছেন, ব্ল্যাকহোলের বিপরীত হোয়াইট হোল। ব্ল্যাকহোল যেমন সবকিছু নিজের দিকে টেনে নেয়, হোয়াইট হোল তেমনি সবকিছু বের করে দেয়। অনেকে ধারণা করেন, বিগ ব্যাং-ও একটি হোয়াইট হোলের মতোই ঘটনা, যা সবকিছু বের করে দিয়েছিল। সে ক্ষেত্রে এখানেও চলে আসবে ০ দিয়ে ভাগের বিষয়টি।
মোটকথা, অন্য কোনো সংখ্যাকে ০ দিয়ে ভাগ করলে সেটি হয় অসংজ্ঞায়িত, ০-কে ০ দিয়ে ভাগ করলে হয় অনির্ণেয়; তবে ০-কে অন্য কোনো সংখ্যা দিয়ে ভাগ করলে উত্তর হয় ০। অর্থাৎ, ০-কে অন্য যেকোনো সংখ্যা দিয়ে অনায়াসেই ভাগ করা যায়।
শূন্য দিয়ে ভাগের রহস্য হয়তো কখনোই পুরোপুরি সমাধান করা সম্ভব হবে না। তবে পরিশেষে বলতে চাই, কোনো কিছুর সমাধানের জন্য তীব্র কৌতূহল এবং সুযোগের প্রয়োজন। কোনটা অসংজ্ঞায়িত আর কোনটা অনির্ণেয়, তা ভালোভাবে জানতে হবে, বুঝতে হবে।