আরবি গাছগুলি সম্পূর্ণরূপে না বুঝতে কি ঠিক আছে? [বন্ধ]


15

সুতরাং আমি সবেমাত্র লাল কালো গাছ শিখলাম করमेन এবং বাহ! সাধারণত আমি সমস্ত অ্যালগরিদম এবং ডেটা স্ট্রাকচার বুঝতে চাই যে আমি সিউডো কোডটি না দেখে প্রতারণা না করে স্ক্র্যাচ থেকে তাদের পুনর্নির্মাণ করতে পারি। আমি সত্যিই অ্যালগরিদম পছন্দ করি তাই তারা কীভাবে কাজ করে তা শিখতে আমি উপভোগ করি এবং আমি সাধারণত লাইনে লাইনে যাই এবং কোডটি দেখে এবং কী ঘটছে তা যা আমি বুঝতে পেরেছিলাম তা কি ঘটেছিল তা যাচাই করে কিছু ক্ষেত্রে চেষ্টা করি।

যা হচ্ছে তা কেবল বুঝতে পেরে আরবি গাছগুলির জন্য আমার প্রচুর সময় লেগেছে। এমনকি বইটির ব্যাখ্যা সহ, আমি এখনও কোডটি বোঝা শক্ত হয়েছি। আমি কীভাবে / কেন আবর্তনগুলি কাজ করে তা বুঝতে পারি না তা উল্লেখ করার দরকার নেই। আমি এটিকে মোটেই স্বজ্ঞাত মনে করি না। আমি বলতে চাইছি, তিনটি (ছয়টি আসলে) বিভিন্ন ক্ষেত্রে সন্নিবেশের জন্য এবং তারপরে মুছার জন্য 4 টি মামলা রয়েছে? এই জিনিস বুঝতে কি সম্ভব? প্রতারণা ছাড়াই এই কোডটি পুনরায় তৈরি করা আমার পক্ষে অসম্ভব। বাইনারি ট্রি অবধি আমি আমার মাথা থেকে জিনিসগুলি বাস্তবায়ন করতে পারি, কিছু টুইট করে এটি সর্বদা কার্যকর হবে তবে আর বি গাছগুলি আমি চেষ্টাও করতে যাচ্ছি না। আমি বলতে চাইছি, এমনকি শিক্ষক কখনও কখনও বিভ্রান্ত হয়ে পড়েছিলেন তাই আমি মনে করি এটি সত্যিই এত সহজ নয় তবে একই সাথে, যা ঘটছে তা আমাদের বুঝতে হবে না বা কমপক্ষে কেন? বইটি না কীভাবে আবর্তনের ধারণাটি নিয়ে কেউ এসেছিল তা সত্যিই ব্যাখ্যা করুন। কেউ কীভাবে লক্ষ্য করেছে যে 2 আবর্তন দিয়ে আপনি যে কোনও সন্নিবেশ সমস্যার সমাধান করতে পারেন? এটা আশ্চর্যজনক!

আমার প্রশ্ন হ'ল, আমার কি সত্যিই আরবি গাছগুলি 100% বুঝতে হবে? আমি সম্পূর্ণরূপে না বুঝে এক ধরণের খারাপ এড়িয়ে যাওয়া জিনিস অনুভব করি। আগাম ধন্যবাদ! (পিএস: আরবি-গাছের জন্য কোনও ট্যাগ নেই, আসলে এমনকি গাছের জন্যও নয়, কেবল বাইনারি-ট্রি, তাই আমি কেবল আলগোরিদিম রেখেছি)


18
"যুবক, গণিতে আপনি জিনিস বুঝতে পারছেন না You আপনি কেবল তাদের অভ্যস্ত হয়ে যান" " - জন ভন নিউমান

2
@ ক্ল্যাশ কোন প্রসঙ্গে? আমি মনে করি না পেশাদার পরিবেশে আরবি গাছগুলি কীভাবে কাজ করে তা আমার কখনই জেনে রাখা দরকার ছিল তবে আপনি যা করতে চান তার উপর ভিত্তি করে এটি ভিন্ন হতে পারে। আমি বলব আপনি ইমগুলি প্রয়োজন না হওয়া পর্যন্ত তাদের এড়িয়ে চলুন।
অ্যাডাম শিখুন

4
@ ক্ল্যাশ এটি আমাকে প্রচুর বিরক্ত করে যে আপনি বলে যে কোনও বাহ্যিক উত্স থেকে দিকনির্দেশনা সহ যে কোনও কিছু বাস্তবায়ন করা "প্রতারণা"। সিউডোকোড একটি কারণে উপস্থিত রয়েছে - তারা এটিকে স্মৃতি থেকে করার প্রয়োজনটিকে সরিয়ে দেয়। আমি উইনস্টনের সাথে সম্পূর্ণরূপে একমত: স্মৃতি থেকে বুঝতে এবং জেনে রাখা দুটি পৃথক পৃথক বিষয়। মুখস্থ! = বোঝার এবং বোঝার! = মুখস্ত করা।
doppelgreener

3
আসলে আরবি গাছগুলির যত্ন না করা ঠিক আছে - যতক্ষণ না আমার সেগুলির দরকার হয়?
স্টিভেন এ। লো

1
অন্য সমস্ত ধরণের বৃক্ষ প্রয়োগের ক্ষেত্রে আপনি যখন আর বি গাছ ব্যবহার করবেন তখন সম্ভবত তা বুঝতে পারেন। তারা কী সমস্যাগুলি সমাধান করে এবং আরবি গাছগুলি বেছে নেওয়ার সমস্ত কারণগুলি জানুন। তবে যদি কখনও আপনাকে একটি প্রয়োগ করতে হয় (অবশ্যই কোনও পরীক্ষার বাইরে), আপনি এটি সন্ধান করতে সক্ষম হবেন; সুতরাং কেন স্মৃতি থেকে এটি করবেন তা জেনে বিরক্ত করবেন?
দাউদ বলেছেন মনিকা

উত্তর:


13

আপনি "বইটি না দেখে কোড লিখতে সক্ষম হচ্ছেন" এর সাথে "বোঝার" ধারণাটি সমান বলে মনে হচ্ছে। এই দুটি ভিন্ন জিনিস। যদি আপনি যদি দেখতে পান যে কীভাবে গাছের নোডগুলি ঘোরানো হয় ভারসাম্য বজায় রাখার জন্য গাছটিকে পুনরায় সাজিয়ে তোলে, তবে আপনি এটি বুঝতে পারেন। যে সমস্ত ক্ষেত্রে ঘূর্ণন প্রয়োগ করা হয় তা তাত্ক্ষণিকভাবে স্মরণে রাখতে সক্ষম হওয়াই মূল বিষয় নয়।

নিজেই, আমি যদি পেন / কাগজ / এটি দিয়ে খেলতে বেশ কয়েক ঘন্টা থাকতাম তবে আমি সম্ভবত ঘূর্ণনগুলি বের করতে পারি। তবে আমি অবশ্যই এটি একটি চিন্তা ছাড়াই লিখতে পারি না। আমাকে যদি আসলে এই জাতীয় অ্যালগরিদম লিখতে হত তবে আমি সমস্ত বিবরণ সঠিকভাবে পাচ্ছি কিনা তা নিশ্চিত করার জন্য আমি এটি সন্ধান করব। অবশ্যই, প্রায় কোনও পরিস্থিতিতে আমি ইতিমধ্যে লিখিত কোড ব্যবহার করব।

এই সমস্তগুলি ব্যবহারে আসে যখন আপনি এমন কোনও পরিস্থিতি জুড়ে আসেন যা কোনও কোনও অ্যালগরিদমের সাথে খাপ খায় না। আপনার নিজের গাছ প্রয়োগ বাস্তবায়নের লেখার দরকার নেই। তবে আপনি নিজেকে খুঁজে পেতে পারেন, বলুন দ্বিগুণ-সংযুক্ত তালিকার একটি উত্তরাধিকারী সমতল করার প্রয়োজন। সেক্ষেত্রে আবর্তনের পিছনের মূল ধারণাটি বোঝা খুব সহায়ক হতে পারে।


2
'আপনি "বইটি না দেখে কোড লিখতে সক্ষম হয়ে" "বোঝার" ধারণার সমতুল্য বলে মনে করছেন। এ দুটি আলাদা জিনিস '' এর ... না। আপনি যদি এটি লিখছেন তবে এর অর্থ সম্ভবত আপনি কলেজ বা এক বছর বা তার পরেও গণিত অধ্যয়ন করেন নি, এমনকি যদি। এক পর্যায়ে, "বোধগম্য" গণিত (যা টুরিংয়ের সৌজন্যে, কম্পিউটিংয়ের সমান) কেবলমাত্র আপনি "বুঝতে পেরেছেন" তা প্রমাণ করতে সক্ষম হবেন। কোনও কার্যকারিতা বা আইএফএস বা মায়বেস, ফু বা বার বা বাজ নেই। সেই স্তরে, আপনি যদি নিজের গণিতের দৃ prove়তা প্রমাণ করতে না পারেন তবে আপনি টোস্ট। (যদি না আপনার নাম ফেরামাত হয়))
ফেরামাত হয় ডেনিস ডি বার্নার্ডি

14
@ ডেনিস, আমার সিএসে এমএস আছে মেজরদের জন্য উচ্চতর গড় গণিত কোর্সগুলি। আমি ভীত যে আপনি আমার বক্তব্য বুঝতে পারেন নি। আপনি যা বুঝতে পেরেছেন তা প্রমাণ করতে বা প্রমাণ করতে সক্ষম হওয়া খুব গুরুত্বপূর্ণ। কোনও প্রমাণ বা পদ্ধতির বিশদ মুখস্থ করতে সক্ষম হচ্ছেনা। আপনি কোডটি লিখতে সক্ষম হবেন। কিন্তু আমি মেমোরি থেকে কোডটি লিখতে সক্ষম হতে কোনও প্রয়োজনের জন্য দেখতে পাচ্ছি না।
উইনস্টন ইওয়ার্ট

2
আপনি যেখানে এটি সন্ধান করেন সেখানেও সাবধান হন - আইআইআরসি, কিছু পাঠ্যপুস্তকের তাদের লাল-কালো গাছের অ্যালগোরিদমগুলিতে উল্লেখযোগ্য ভুল রয়েছে।
স্টিভ 314

2
@ স্টিভ 314, তখন পাঠ্যপুস্তকের লেখক হতে আপনার আরবি বোঝার দরকার নেই! ;)
উইনস্টন ইওয়ার্ট

ধন্যবাদ উইনস্টন, এটি আমাকে স্বস্তি দেয়! এখানে খুব কয়েকটি জিনিস রয়েছে যা আমি অদূর ভবিষ্যতে পোস্ট করতে পারি যে কোডটি দিয়ে আমি বুঝতে পারি নি। তবে আমি অত্যন্ত আনন্দিত যে এটি বুঝতে না পারার ঠিক আছে (বুঝতে পেরে আমি কোডটি প্রতারণা না করেই বোঝাচ্ছি) কেন / কীভাবে কেউ সন্নিবেশের জন্য 3/6 কেস এবং মুছার জন্য 4/8 কেস লক্ষ্য করেছেন?
বার্নার্ডো পাইরেস

4

আপনি যদি ক্রিয়ামূলক প্রোগ্রামিংয়ের সাথে কথোপকথন হন তবে আপনি তাদের কাছে এই পদ্ধতির আরও ভাল দেখতে পাবেন (ওকাসাকি 1999):

http://www.eecs.usma.edu/webs/people/okasaki/jfp99redblack.pdf

যদি তা না হয় তবে অন্তত শুরুর বাক্যটি থেকে মনোযোগ দিন:

প্রত্যেকে তাদের প্রবর্তক কম্পিউটার বিজ্ঞান ক্লাসে সুষম বাইনারি অনুসন্ধান গাছ সম্পর্কে শিখেছে, তবে বাস্তবে বাস্তবায়নের চিন্তায় এমনকি দৃout়প্রত্যয় কাঁপছে এমন একটি জন্তুটি ।


হাঃ রেয়ান! এটি আমাকে স্বস্তি দেয়! অনেক ধন্যবাদ! আজ আমি এটিও লক্ষ্য করেছি যে আরবি-ট্রি সম্পর্কে এসও-তে খুব কম প্রশ্ন রয়েছে। সুতরাং আমি মনে করি তারা সত্যিই কৃপণ।
বার্নার্ডো পাইরেস

2
আমি মনে করি এটি কেবলমাত্র কলেজ সিএসের শিক্ষার্থীদের বাদ দিয়ে, তারা এমন এক ধরণের জিনিস যা প্রায় প্রতিটি প্রোগ্রামিং ভাষাতেই একবার প্রয়োগ করা হয়। (বা তার চেয়ে কম। আমি মনে করি স্কিমের জন্য সর্বাধিক জনপ্রিয় আরবি কোড ওসিএএমএল এর আরবি কোড থেকে পোর্ট করা হয়েছিল।)
রায়ান কুলিপার

লিঙ্কটি নষ্ট হয়েছে: আয়না 1 , আয়না 2 । উভয় আয়না ভবিষ্যতের কোনও সময়ে অনুপলব্ধ ক্ষেত্রে সম্পূর্ণ উদ্ধৃতি: ক্রিস ওকাসাকি, "একটি কার্যকরী সেটিংয়ে লাল-কালো গাছ", ফাংশনাল প্রোগ্রামিংয়ের জার্নাল, 9 (4), পিপি 471-477, জুলাই 1999
স্নোবল

3

আপনার ঘূর্ণনগুলি বিস্তারিতভাবে বোঝার দরকার নেই। আপনি উচিত আর বি গাছ এবং 2-3-4 গাছ (Sedgewick দেখুন) মধ্যে সম্পর্ক বুঝতে। এই সমস্ত ক্রেজি রোটেশনগুলি যখন আপনি তাদের ২-৩-৪ টি গাছ হিসাবে ভাবেন তখন আরও বেশি অর্থবোধ করে। যদি আপনার প্রফেসর ২-৩-৪-২ গাছের প্রয়োগের বিশদ হিসাবে আরবি গাছগুলি না শিখিয়ে থাকেন তবে আপনার সম্ভবত সম্ভবত ২-৩-৩ গাছের উপর কিছু পড়া উচিত। (সেডজউইকের চিকিত্সা বেশ ভাল; উইকিপিডিয়ায় এটি নেই))

আরও সাধারণভাবে, কেন একটি অ্যালগরিদম কাজ করে তার প্রয়োগের বিশদটি কেবল কখনও কখনও দরকারী। অ্যালগরিদম কেন কাজ করে তার যুক্তি বোঝা প্রায় সর্বদা কার্যকর। নিজেই অ্যালগরিদম নিয়ে আসতে সক্ষম হওয়া সাধারণত প্রয়োজন হয় না, যদিও আরও অ্যালগরিদমগুলি আপনি আরও ভাল সুযোগ বুঝতে পারবেন।


1

পরের সপ্তাহে আপনার পরীক্ষার জন্য যদি আপনার "আরবি ট্রি টু হার্ট" দরকার হয়, আপনাকে বুলেটটি কামড়তে হবে এবং সেগুলি শিখতে হবে। সেক্ষেত্রে আপনার শেখার পদ্ধতিগুলি পুনর্বিবেচনা করা উচিত। সম্ভবত কোনও ক্লাস সাথীর কাছে আরবি ট্রিগুলি ব্যাখ্যা করার চেষ্টা করা আপনাকে একাকী কোড রচনার রাতের চেয়ে আরও বেশি সহায়তা করবে।

আরবি ট্রিগুলি যদি ছুটির পরে আপনার পরবর্তী কোর্সের ভিত্তি হয় তবে সেগুলি এখনই ছেড়ে যান (খারাপ অনুভূতি ছাড়াই) এবং এই সেমিস্টারের কোর্সে মনোনিবেশ করুন। তবে আরবি ট্রিগুলিতে আপনাকে দ্বিতীয়বারের জন্য প্রস্তুত করতে পারে এমন বিষয়গুলির জন্য আপনার চোখের খোসা ছাড়ুন।

যদি আপনি সত্যই মনে করেন যে আপনার সত্যই তাদের আর প্রয়োজন হবে না (সিএফ। আন্না লিয়ার মন্তব্য), অনুশোচনা ছাড়াই তাদের বিদায় চুম্বন করুন - জ্ঞানের সাগরে একটি ফোঁটা (শিক্ষকরা প্রায়শই খারাপ যে শিক্ষকরা তাদের ড্রপকে সবচেয়ে বেশি বলে মনে করেন) কেউই বেশি জানেন না গুরুত্বপূর্ণ)।


1

প্রোগ্রামিং সাফল্যের মূল চাবিকাঠিটি কখনই হাল ছাড়বেন না :

আজ এর আরবি গাছ আগামীকাল এটি অন্যরকম হবে। বড় পাঠ ছাড়ছে না

আমার জন্য, এটি প্রোগ্রামিংয়ের অন্যতম মূল উপাদান, হাল ছাড়েনি ...

আমি আপনাকে পরামর্শ দিচ্ছি যে আপনি চেষ্টা চালিয়ে যান , এবং আপনি যখন ব্যর্থ হন এটি আবার করবেন

"আপনি না পাওয়া পর্যন্ত এটি ক্লিক না হওয়া অবধি এটি চলমান অবধি।"

কারণ একবার আপনি পর্বতগুলি অতিক্রম করার পরে আকাশ পরিষ্কার হয়ে যায়। আপনার মন বোঝার বদলে যায়, আপনি সাময়িকভাবে উন্নীত হন (পরবর্তী পর্বত পর্যন্ত) । এই অস্থায়ী উচ্চতা বিশ্বের সমস্ত অর্থের চেয়ে মূল্যবান ..


ধন্যবাদ, এটাই আমার ভয় ছিল! যদি আমি এটি ছেড়ে দিই, তবে আমাকে পরবর্তী জিনিসটি ছেড়ে দিতে বাধা দিচ্ছে কি? কেবলমাত্র সন্নিবেশ এবং মুছা বোঝার জন্য আমি প্রায় পুরো দিন নষ্ট করেছিলাম।
বার্নার্ডো পাইরেস

এটি কখনই অপচয় নয়, বিশ্বাস করুন যখন এটি সমস্ত ঘাম এবং অশ্রুগুলির চেয়ে বেশি উচ্চতা "ক্লিক" করে।
অন্ধকার রাত

0

এটি বোঝার সর্বোত্তম উপায় হ'ল এটি চেষ্টা করে দেখুন :

  • 3 বা 6 ঘূর্ণন রয়েছে। এক টুকরো কাগজ নিন এবং একে একে লিখে দিন write
  • আপনি এটি পেয়ে গেলে, যান এবং একটি লাল কালো গাছ প্রয়োগ করুন। আপনার যদি কয়েকটি জিনিস সন্ধান করতে হয় তবে তা ঠিক।

আমরা কলেজে এটি কীভাবে করেছি। এবং পরীক্ষার জন্য আমরা এর একটি অংশ কীভাবে কাজ করেছিল তা ব্যাখ্যা করতে পেরেছিলাম।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.