2, సెప్టెంబర్ 2011, శుక్రవారం

కంప్యూటర్ భాష గురించి...

చాలా రోజుల తర్వాత మళ్లీ మీ ముందుకు ఒక పోస్ట్ తో వస్తున్నందుకు సంతోషంగా ఉంది.

ఇప్పటి వరకు కంప్యూటర్ తో మాట్లాడేందుకు ఒక భాష సమకూర్చుకున్నాం. ఇక కంప్యూటర్ కి ఆజ్ఞలు ఏ స్థాయి లో ఇవ్వాలి అనేది ఇప్పుడు చూద్దాం.

   ఈ  ఈ సందర్భం లో నా చిన్నప్పటి ఒక వ్యాపార ప్రకటన గురించి ప్రస్తావించదలిచాను. "చిన్న మొత్తాల పొడుపు సంస్థ" కు సంబంధించిన ప్రకటన అందరికి గుర్తు ఉండే ఉంటుంది. "వేయి మైళ్ళ ప్రయాణమైనా ఒక్క అడుగుతో మొదలు పెడదాం..." అని. అదే విధంగా ఈ రోజు ప్రపంచాన్ని శాసిస్తున్న, మరియు మానవ సహితం కాని అనేక చిక్కు ముడులను విప్పుతున్న కంప్యూటర్ కూడా ఆ యొక్క అత్యంత క్లిష్టమైన సమస్యల పరిష్కారానికి శ్రీకారం ఒక చిన్న గణిత ప్రక్రియ తో మొదలు పెడుతుంది అదే "కూడిక"; అది కూడా ద్వి-సంఖ్యా మానం లో కూడిక.

  ఇది చాలా మందికి ఆశ్చర్యం కలిగించే విషయం అయినా నమ్మి తీరాల్సిన అక్షర సత్యం. మిగిలిన సంక్లిష్టమైన గణిత ప్రక్రియలన్నీ కూడా ఈ ఒక్క కూడిక ద్వారానే సాధించ వచ్చు అని ఒకటో తరగతిలో మన మాస్టారు చెప్పిన పాఠాన్ని ఒక్కసారి గుర్తు చేసుకుంటే చిక్కుముడి చాలా త్వరగా విడి పోతుంది.

   ఉదాహరణకు "తీసివేత" ను రెండవ సంఖ్య యొక్క గుర్తును + నుండి - కు మార్చి కూడటం ద్వారా సాధించ వచ్చు. అలాగే "గుణించుట" ను మళ్లీ మళ్లీ కూడటం ద్వారా సాధించవచ్చును. అలాగే "భాగహారం" ను మళ్లీ మళ్లీ తీసివేయటం ద్వారా సాధించవచ్చు. ఈ విధంగా కంప్యూటర్ అత్యంత క్లిష్టమైన గణిత సమస్యలను కూడా"కూడిక" అనే అత్యంత సాధారణ గణిత ప్రక్రియ ద్వారా సాధించ గల్గుతుంది.

  ఇక ద్వి-సంఖ్యా మానంలో కూడికల సంగతి ఇప్పుడు చూద్దాం. మనం సాధారణ దశాంశ మానం లో గమనించినట్లైతే మనకు ఉన్న పది అంకెలు 00-09 తర్వాత వచ్చే సంఖ్య పదుల స్థానంలో ఉన్న అంకె ఒకటి పెరిగి, ఒకట్ల స్థానంలో ఉన్న అంకె తిరిగి తన మొదటి విలువ 0 ను తీసుకుంటుంది. అనగా 10 అవుతుంది. అలాగే ద్విసంఖ్యా మానంలో కూడా 0, 1 తర్వాత వచ్చే సంఖ్య 10 అవుతుంది. అటు తదుపరి 11, 100, 101, 110, 111, ... వస్తాయి.

  ఉదాహరణకు 25 ను ద్వి-సంఖ్యా మానం లో వ్రాసినట్లయితే 11001  అవుతుంది. దీనిని కొంత తేలికగా అర్ధం చేసుకోవాలంటే 25 గురించి మరింత సమాచారం తెలుసుకోవాలి. 25 లో మొదటి అంకె 5 మరియు దాని స్థాన విలువ 1. అలాగే రెండవ అంకె 2 మరియు దాని స్థాన విలువ 10. అనగా 25 అనేది దానిలోని అంకెలను వాటి వాటి స్థాన విలువలతో గుణించి కూడగా వచ్చిన సంఖ్య. అనగా 5x1+2x10=25.

  ఇప్పుడు  దశాంశ మానంలో స్థాన విలువలు ఎలా మారుతున్నాయో చూద్దాం. ఇక్కడ మొదటి అంకె స్థాన విలువ 1. ఆ తరువాత అంకె స్థాన విలువ 10. (దశాంశ మానం కాబట్టి.) ఆ తరువాత అంకె స్థాన విలువ 100 (అనగా 10x10) తరువాతి అంకె స్థాన విలువ 1000 అనగా (10x10x10).

   ఇక ద్వి-సంఖ్యా మానం లో చూసినట్లయితే మొదటి అంకె స్థాన విలువ 1. తరువాతి అంకె స్థాన విలువ 2. (ద్వి-సంఖ్యా మానం కాబట్టి.) తరువాతి అంకె స్థాన విలువ 4. (2x2) తరువాతి అంకె స్థాన విలువ 8.(2x2x2). అటు తరువాతి అంకె స్థాన విలువ 16.(2x2x2x2). 

   పై విధంగా గమనించినట్లైతే 11001 యొక్క విలువ 1x1+0x2+0x4+1x8+1x16=25.

   ఇక ఒక దశాంశ మాన సంఖ్యను ద్వి-సంఖ్యా మానంలోకి తేలికగా మార్చటం ఎలాగ అనేది ఇప్పుడు చూద్దాం. ఉదాహరణకు 25 ని ద్వి-సంఖ్యా మానంలోకి మార్చుదాం. దీనికోసం ఆ సంఖ్యను సగం చేసి మిగిలిన శేషాన్ని దాని క్రింద వ్రాయండి. ఈ క్రింద చూపిన విధంగా.

     25  --> 12  -->  6 --> 3 -->  1  --> 0 
             1        0     0      1      1 
   ఈ సంఖ్యను కుడినుంచి ఎడమకు చదివినట్లైతే  మానం ద్వి-సంఖ్యా మానంలో 25 గా పైన చెప్పుకున్న సంఖ్య 11001 వస్తుంది. ఈ విధంహా మానం ఏ సంఖ్యనైనా ద్వి-సంఖ్యా మానంలోకి మార్చవచ్చును.

  మరొక ఉదాహరణగా 32 ను ద్వి-సంఖ్యా మానంలోకి మార్చి చూద్దాం. 
   32 --> 16 --> 8  --> 4 --> 2 --> 1  --> 0
          0      0      0     0     0      1 

   అనగా 32 ను ద్వి-సంఖ్యా మానంలో 100000 గా వ్రాయ వచ్చును. దీనిని స్థాన విలువలతో సరిచూద్దాం. దీని స్థాన విలువలను గణించినట్లైతే 0x1+0x2+0x4+0x8+0x16+1x32=32 అవుతుంది. 
ఇక కూడికలను ఈ క్రింద చూపిన విధంగా చేయవచ్చును.


http://i53.tinypic.com/2d7zj48.gifhttp://i53.tinypic.com/2lihpp2.gif 


 ఇక తీసివేత విషయానికి వస్తే, ఉదాహరణకు మనం 269-34(=235) ఎంతో కనుక్కోవాలనుకుందాం. మనం 69 లో నుండి 34 ను తీసివేసే బదులు, 69 కి 34 యొక్క పూర్ణ భాగస్వామిని (అనగా 34 కి ఏమి కలిపితే దగ్గరలోని పరిపూర్ణ సంఖ్య అనగా 1000 (ఇది సమస్య లోని అన్ని సంఖ్యల కన్నా పెద్దదైన పరిపూర్ణ సంఖ్య. గమనించగలరు.) వస్తుందో,ఇక్కడ అది 966 అవుతుంది.) కలిపినట్లయితే 269+966=269+(1000-34)=1235 అవుతుంది. సరిగ్గా గమనించినట్లైతే మనం రెండవ సంఖ్య ను తీసివేయ్యటానికి బదులుగా దాని పూర్ణ భాగస్వామిని మొదటి సంఖ్యకు కలుపుతున్నాము. అనగా మొత్తం లెక్కలో ఒక పరిపూర్ణ సంఖ్య 1000 ని అదనంగా కలుపుతున్నాము. కాబట్టి మనకు సరైన సమాధానం కావాలంటే తుది సమాధానం నుండి ఆ పరిపూర్ణ సంఖ్యను తీసివేసినట్లితే సరిపోతుంది. ఇంకా తేలికగా చెప్పాలి అంటే తుది సమాధానంలో ఎడమ చివరి అంకెను విస్మరించినట్లైతే మిగిలినదే మనకు కావలిసిన సమాధానం అవుతుంది. 

 ఆ విధంగా ఫకీర్ బాబా తాయెత్తు లాగ, సర్వ రోగ నివారిణి లాగ ఒక్క గణిత ప్రక్రియతోనే ప్రాధమిక గణిత సమస్యలనన్నిటిని పూరించ గల్గుతున్నాం. కాకపొతే ఇక్కడ వచ్చిన సమస్యల్లా ఆ రెండవ సంఖ్య యొక్క పూర్ణ భాగస్వామిని కనుక్కోవటం ఎలాగ? దానికోసం మరొక తీసివేత చెయ్యాల్సిన పరిస్థితి ఎదురవుతోంది. 

 ఆ విధంగా కంప్యూటర్ కి చెప్పటానికి తేలికగా ఉంటుంది అని ఒక్క గణిత ప్రక్రియనే ఎంచుకొని మన పూర్వ గణిత పరిజ్ఞానాన్ని అంతా త్రవ్వి తీసి మన గణిత పద్ధతులనే మార్చుకుంటే మళ్లీ సమస్య మొదటికి వచ్చిందే అనే సందేహం కలగవచ్చు. 

 కాని ఇప్పటివరకు మనం చూసింది దశాంశ మానం లో తీసివేత గురించి. అదే ద్వి-సంఖ్యా మానంలో తీసివేతలో ఏమైనా సౌలభ్యం ఉందేమో చూద్దాం. ద్వి-సంఖ్యా మానంలో 0 నుండి 1 ని తీసివేయవలసిన సందర్భంలో  0 యొక్క ఉన్నత స్థానం నుండి 1 అప్పుగా తీసుకుంటాము. అది ప్రస్తుత స్థానంలో 2 గా మారుతుంది. ఉదాహరణకు ఈ క్రింది తీసివేతను గమనించండి.
 http://i54.tinypic.com/oj09kn.gif

మరొక ఉదాహరణగా 25-9 ని ద్వి-సంఖ్యా మానంలో చేసి చూద్దాం. అనగా మనం 11001-01001 విలువను మనం ఇప్పుడు కనుక్కోవాలి. మనం సాధారణ పద్దతిని ఉపయోగించినట్లైతే సమాధానం 10000 గా గుర్తించవచ్చు. అయితే మన పధ్ధతి ద్వారా అయితే 01001 కి మనం పూర్ణ భాగస్వామిని కనుక్కోవాలి. అనగా దగ్గరలోని పరిపూర్ణ సంఖ్య 100000 నుండి దానిని తీసివేస్తే వచ్చిన సంఖ్య మనకు కావాలి. గణించి చూసినట్లయితే దాని విలువ 10111 గా గుర్తించవచ్చును. సరిగ్గా గమనించినట్లైతే అది మన సంఖ్య 01001 లో సున్నాలు, ఒకట్లను తారుమారు చేస్తే వచ్చిన సంఖ్య 10110 కి 1 కలిపితే వచ్చే సంఖ్య కు సమానం అవుతుంది.

 మీకు ఇంకా అనుమానంగా ఉంటే 01010 కి సంబంధించిన పూర్ణ భాగస్వామిని కనుక్కోండి. దాని విలువ 10101 కి 1 కలుపగా వచ్చే సంఖ్య 10110 అవుతుంది. 

 ఇంతకు ముందు పోస్ట్ లో చెప్పుకున్నట్లుగా 1 ని వెలిగే బల్బ్ గాను 0 ను ఆరిపోయిన బల్బ్ గాను గుర్తించినట్లితే అన్ని ఆరి పోయిన దీపాలను వెలిగించి అన్ని వెలుగుతున్న దీపాలను ఆర్పమని చెప్పటం, అనగా 0 మరియు 1 లను తారుమారు చెయ్యమని కంప్యూటర్ కి చెప్పటం పెద్ద కష్టమైన పని ఏమీ కాదు. అటు తర్వాత జరిగే పని 1 ని కూడటం. అది కంప్యూటర్ కి వెన్నతో పెట్టిన విద్య కాబట్టి మనం దాని గురించి ఆలోచించ వలసిన అవసరం లేదు. ఆ విధంగా కంప్యూటర్ చేత తీసివేత కూడా చేయించ వచ్చును. 

 తరువాతి గణిత ప్రక్రియ "గుణించుట". ఉదాహరణకు 2x5=10 ని మనం 2+2+2+2+2=10 గా గణించ వచ్చును.

   ఇక మిగిలిన గణిత ప్రక్రియ "భాగహారం". ఉదాహరణకు 5/2=2.5 అనే విలువను గణించటానికి మనం "తీసివేత" ను ఉపయోగించవచ్చు అని చెప్పుకున్నాము. 5-2-2=1 ఇక్కడ రెండును ఎన్ని సార్లు తీసివేస్తున్నాము అనేది లెక్కించగల్గితే సమాధానంలో చుక్కకు ముందు అంకె అనగా 2 వస్తుంది. ఇక శేషం 1 ని 10 తో (ద్వి-సంఖ్యా మానం లో ఐనట్లైతే 2 తో) గుణించినట్లైతే 10 వస్తుంది. ఇప్పుడు మరలా తీసివేత కార్యక్రమాన్ని కొనసాగించినట్లైతే 10-2-2-2-2-2=0. ఈ సారి రెండును 5 సార్లు తీసివేయవలసి వచ్చింది. అనగా మన సమాధానం లో చుక్క తరువాత మొదటి అంకె వచ్చింది. ఇక శేషం ఏమి మిగలలేదు కాబట్టి మన భాగహార ప్రక్రియ ఇంతటితో ఆపివేయ వచ్చును. ఒక వేళ ఇంకా శేషం ఉన్నట్లయితే మరలా పదితో గుణించి తీసివేత కార్యక్రమాన్ని కొనసాగించ వలసి ఉంటుంది. దీనితో భాగహారాన్ని కూడా కూడికల రూపం లోకి మార్చగలిగాము.

ఆ విధంగా కంప్యూటర్ కి ఆజ్ఞలు ఏ విధంగా ఇవ్వాలి అనే విషయం మనం ఇప్పుడు తెలుసుకున్నాం. ఇక కంప్యూటర్ లోపల మన ఆజ్ఞలను గుర్తించటానికి పాటించటానికి ఎటువంటు ఏర్పాట్లు ఉన్నాయి అనే విషయం తదుపరి పోస్ట్ లో చూద్దాము.

 దీనిని బట్టి చూస్తే కంప్యూటర్ కి మనకి తెలిసినంత కూడా తెలియదని అర్ధం అవుతోంది. కాబట్టి దానిని ఒక మానవాతీత మహా శక్తి అని ఊహించాల్సిన అవసరం లేదనుకుంటాను. కాకపోతే వంద ఉపాయాలు తెలిసిన నక్క కన్నా ఒక్క ఉపాయం తెలిసిన పిల్లి బ్రతికి బట్ట కట్టినట్లు ఒకే ఒక గణిత విధానం తెలిసిన కంప్యూటర్ దానినే అనేక సార్లు విసుగు విరామం లేకుండా ఉపయోగించటం వలన మనుషులను మించిన పనులను చేయగల్గుతుంది. 

http://i53.tinypic.com/2lusaqt.jpg

 ఏవిధంగానైతే వినాయకుడు తనకు తెలిసిన తల్లిదండ్రులను పూజించటం అనే ఒకే విద్యను భక్తి తో ఆచరించి గణాధిపత్యం పొందాడో, అలాగే కుమార స్వామి అన్ని తెలుసుననుకొని అభాసుపాలయ్యాడో అలాగే కంప్యూటర్ ముందు మనిషి తల వంచాల్సిన పరిస్థితి వచ్చింది.

 తదుపరి పోస్ట్ లో మరిన్ని విషయాలతో మీ ముందుంటాను... అంత వరకు శెలవు తీసుకుంటూ...


కామెంట్‌లు లేవు:

కామెంట్‌ను పోస్ట్ చేయండి

Related Posts Plugin for WordPress, Blogger...