1 00:00:00,000 --> 00:00:10,900 2 00:00:10,900 --> 00:00:15,860 >> বক্তা 1: ঠিক আছে, তাই এই হল এবং CS50 এই সপ্তাহে পাঁচ শেষে হয়. 3 00:00:15,860 --> 00:00:19,220 আর যে শেষবার কবে আমরা শুরু কল্পনাকারী ডাটা এ খুঁজছেন 4 00:00:19,220 --> 00:00:22,310 সমাধান করতে শুরু করে যে কাঠামো পরিচয় করিয়ে দিতে শুরু করে সমস্যার, 5 00:00:22,310 --> 00:00:25,640 নতুন সমস্যা, কিন্তু এই চাবিকাঠি থ্রেডিং ধরণের ছিল যে আমরা 6 00:00:25,640 --> 00:00:27,940 নোড থেকে নোড করতে শুরু করে. 7 00:00:27,940 --> 00:00:30,085 তাই অবশ্যই এই হল একটি একেলা লিঙ্ক তালিকা. 8 00:00:30,085 --> 00:00:31,960 আর করে একেলা, লিঙ্ক আমি শুধু একটা আছে মানে 9 00:00:31,960 --> 00:00:33,380 যারা নোড প্রতিটি মধ্যে থ্রেড. 10 00:00:33,380 --> 00:00:35,890 আপনি কল্পনাকারী না পারেন সক্রিয় আউট দোকর লিঙ্ক তালিকা ভালো জিনিস 11 00:00:35,890 --> 00:00:38,470 আপনি একটি তীর আছে যদ্দ্বারা , উভয় দিক থেকেই যাচ্ছে যা 12 00:00:38,470 --> 00:00:40,320 নির্দিষ্ট দক্ষতাসম্পন্ন সাহায্য করতে পারে. 13 00:00:40,320 --> 00:00:42,000 কিন্তু এই সমস্যার সমাধান? 14 00:00:42,000 --> 00:00:43,500 এই কি সমস্যার সমাধান হয়নি? 15 00:00:43,500 --> 00:00:46,620 আমরা সোমবার কেন নিয়েছে? 16 00:00:46,620 --> 00:00:49,820 কেন, তত্ত্ব, আমরা সোমবার গ্রাহ্য হয়নি? 17 00:00:49,820 --> 00:00:50,630 এটার কাজ কি? 18 00:00:50,630 --> 00:00:51,950 >> শ্রোতা: আমরা পরিবর্তনশীল এটা মাপ পরিবর্তন করতে পারেন. 19 00:00:51,950 --> 00:00:53,740 >> বক্তা 1: ঠিক আছে, আমরা করতে পারেন, তাই পরিবর্তনশীল এটা মাপ পরিবর্তন. 20 00:00:53,740 --> 00:00:54,710 আচ্ছা আপনি উভয় সম্পন্ন. 21 00:00:54,710 --> 00:00:57,560 তাই আপনি যদি এই পরিবর্তনশীল মাপ পরিবর্তন করতে পারেন ডাটা স্ট্রাকচার, একটি অ্যারের যেহেতু, 22 00:00:57,560 --> 00:01:00,760 রিকল, আপনি একটি জানা আছে অবরোহী কতটা স্থান আপনি চান 23 00:01:00,760 --> 00:01:03,870 এবং আপনি একটু বেশি প্রয়োজন হলে স্থান, আপনার ভাগ্য আউট ধরনের করছি. 24 00:01:03,870 --> 00:01:05,560 আপনি একটি সম্পূর্ণ নতুন অ্যারে তৈরি করা আছে. 25 00:01:05,560 --> 00:01:07,893 আপনি সব সরানো আছে আপনার এক থেকে অন্য তথ্য, 26 00:01:07,893 --> 00:01:10,600 অবশেষে পুরানো অ্যারে মুক্ত আপনি যা করতে পারেন, এবং তারপর যদি চালিয়ে যান তবে. 27 00:01:10,600 --> 00:01:13,891 যা শুধু খুব ব্যয়বহুল মতানুযায়ী এবং খুব অদক্ষ, এবং প্রকৃতপক্ষে এটা হতে পারে. 28 00:01:13,891 --> 00:01:14,890 কিন্তু এই সব ভাল নয়. 29 00:01:14,890 --> 00:01:18,180 আমরা একটি মূল্য দিতে, এক কি ছিল আরো সুস্পষ্ট দাম আমরা 30 00:01:18,180 --> 00:01:20,550 একটি লিঙ্ক তালিকা ব্যবহার করে দিতে? 31 00:01:20,550 --> 00:01:22,825 >> শ্রোতা: আমরা ব্যবহার করতে হবে প্রতিটি এক জন্য ডবল স্পেস. 32 00:01:22,825 --> 00:01:25,200 বক্তা 1: হ্যাঁ, তাই আমরা প্রয়োজন অন্তত দুবার অনেক স্থান হিসাবে. 33 00:01:25,200 --> 00:01:27,700 আসলে, আমি বুঝতে পেরেছি এই ছবি এর এমনকি সামান্য বিভ্রান্তিকর, 34 00:01:27,700 --> 00:01:32,200 কারণ আধুনিক অনেক মধ্যে CS50 আইডিই তে কম্পিউটার, একটি পয়েন্টার বা একটি ঠিকানা 35 00:01:32,200 --> 00:01:33,700 আসলে চার বাইট নয়. 36 00:01:33,700 --> 00:01:36,090 এটা খুব প্রায়ই এইসব কী দিন আট বাইট, যা 37 00:01:36,090 --> 00:01:38,530 নীচে মানে সবচেয়ে বাস্তবে আছে আয়তক্ষেত্র 38 00:01:38,530 --> 00:01:40,900 দ্বিগুণ হিসাবে ধরনের হয় আমি টানা করেছি কি হিসাবে বড়, 39 00:01:40,900 --> 00:01:44,409 যা আপনি তিনবার হিসাবে ব্যবহার করছেন মানে আমরা অন্যথায় থাকতে পারে যতটা স্থান. 40 00:01:44,409 --> 00:01:46,700 এখন একই সময়ে, আমরা করছি এখনও বাইট কথা, তাই না? 41 00:01:46,700 --> 00:01:49,140 আমরা অগত্যা কথা বলছি না মেগাবাইটের বা গিগাবাইট, 42 00:01:49,140 --> 00:01:51,000 এই তথ্য যদি না কাঠামো বড় পেতে. 43 00:01:51,000 --> 00:01:54,510 >> আর তাই আজ আমরা বিবেচনা শুরু আমরা তথ্য অন্বেষণ পারে কিভাবে 44 00:01:54,510 --> 00:01:57,310 আরো দক্ষতার মধ্যে যদি আসলে তথ্য পায় বড়. 45 00:01:57,310 --> 00:02:00,360 কিন্তু এর canonicalize করার চেষ্টা করা যাক প্রথম অপারেশন 46 00:02:00,360 --> 00:02:02,460 আপনি এই সাইটে কাজ করতে পারেন যে ডাটা স্ট্রাকচার ধরণের. 47 00:02:02,460 --> 00:02:04,790 একটি লিঙ্ক মত এত কিছু তালিকায় সাধারণত সমর্থন 48 00:02:04,790 --> 00:02:07,514 অপারেশন মুছে মত, সন্নিবেশ, এবং অনুসন্ধান. 49 00:02:07,514 --> 00:02:08,639 আর আমি যে দ্বারা কি বোঝাতে চেয়েছেন? 50 00:02:08,639 --> 00:02:11,222 যে শুধু, যে সাধারণত এর অর্থ মানুষ লিঙ্ক তালিকা ব্যবহার করে থাকেন তাহলে, 51 00:02:11,222 --> 00:02:14,287 তারা বা অন্য কেউ বাস্তবায়িত হয়েছে মুছে সন্নিবেশ মত ফাংশন, 52 00:02:14,287 --> 00:02:16,120 এবং অনুসন্ধান, আপনি যা করতে পারেন, তাই আসলে কিছু না 53 00:02:16,120 --> 00:02:18,030 ডাটা স্ট্রাকচার সাথে দরকারী. 54 00:02:18,030 --> 00:02:20,760 সুতরাং আসুন একটি দ্রুত কটাক্ষপাত করা যাক আমরা বাস্তবায়ন হতে পারে 55 00:02:20,760 --> 00:02:24,530 একটি লিঙ্ক তালিকা জন্য কোড হিসাবে অনুসরণ করে. 56 00:02:24,530 --> 00:02:27,885 >> সুতরাং এই মাত্র কিছু সি কোড, না এমনকি একটি সম্পূর্ণ প্রোগ্রাম 57 00:02:27,885 --> 00:02:29,260 আমি সত্যিই দ্রুত আপ বেত্রাঘাত যে. 58 00:02:29,260 --> 00:02:32,300 এটা বিতরণে অনলাইন না কোড, আসলে এটি চালানো হবে না, কারণ. 59 00:02:32,300 --> 00:02:33,790 কিন্তু আমি শুধু করেছি বিজ্ঞপ্তি একটি মন্তব্য বলেন, 60 00:02:33,790 --> 00:02:36,130 ডট ডট ডট, কিছু আছে সেখানে আছে, কিছু বিন্দু বিন্দু বিন্দু. 61 00:02:36,130 --> 00:02:38,410 আর এর ঠিক তাকান সরস অংশ কি. 62 00:02:38,410 --> 00:02:40,790 তাই লাইন তিনটি উপর, এই এখন যে প্রত্যাহার 63 00:02:40,790 --> 00:02:45,960 আমরা সর্বশেষ একটি নোড ঘোষণা করার প্রস্তাব সময়, যারা আয়তক্ষেত্রাকার বস্তুর এক. 64 00:02:45,960 --> 00:02:48,790 এটা আমরা এন ডাকবো যে কোন int আছে কিন্তু আমরা কিছু কল করতে পারে, 65 00:02:48,790 --> 00:02:51,920 এবং তারপর একটি struct নোড তারকা পরের বলা. 66 00:02:51,920 --> 00:02:55,520 আর শুধু, যে দ্বিতীয় স্পষ্ট করা লাইন, লাইন ছয় উপর, যে কি? 67 00:02:55,520 --> 00:02:57,930 এটা আমাদের জন্য কী করছে? 68 00:02:57,930 --> 00:03:01,044 এটা অবশ্যই আরো মনে হচ্ছে, কারণ আমাদের স্বাভাবিক ভেরিয়েবল চেয়ে রহস্যপূর্ণ. 69 00:03:01,044 --> 00:03:02,740 >> শ্রোতা: এটা এক উপর সরানো তোলে. 70 00:03:02,740 --> 00:03:04,650 >> বক্তা 1: এটা এক উপর সরানো তোলে. 71 00:03:04,650 --> 00:03:08,580 আর, আরো ভালো হবে এটা অঙ্ক সংরক্ষণ করবে 72 00:03:08,580 --> 00:03:11,582 হতে বোঝানো যে নোড অর্থগত পাশে, ডান? 73 00:03:11,582 --> 00:03:13,540 তাই এটা করা যাচ্ছে না অগত্যা কিছু সরানো. 74 00:03:13,540 --> 00:03:15,290 এটা শুধু যাচ্ছে যা, একটি মান সংরক্ষণ 75 00:03:15,290 --> 00:03:17,170 অঙ্ক হতে যাচ্ছে অন্য কিছু নোড, 76 00:03:17,170 --> 00:03:20,810 আমরা struct বলেন করেছি যে কেন নোড তারকা, তারকা বাচক 77 00:03:20,810 --> 00:03:22,370 একটি পয়েন্টার বা একটি ঠিকানা. 78 00:03:22,370 --> 00:03:26,390 ঠিক আছে, তাই এখন আপনি আমরা আছে অনুমান যদি আমাদের জন্য উপলব্ধ এই এন, ও এর দিন 79 00:03:26,390 --> 00:03:29,490 অন্য কেউ আছে অনুমান পূর্ণসংখ্যার আভা ঢোকানো 80 00:03:29,490 --> 00:03:30,400 একটি লিঙ্ক তালিকা মধ্যে. 81 00:03:30,400 --> 00:03:35,640 আর যে সংযুক্ত তালিকা কিছু পয়েন্ট দ্বারা জোরাল 82 00:03:35,640 --> 00:03:39,040 যে একটি পরিবর্তনশীল বলা তালিকা একটি প্যারামিটার হিসেবে এখানে সালে পাশ, 83 00:03:39,040 --> 00:03:43,120 কিভাবে আমি লাইন সম্পর্কে যান 14 অনুসন্ধান বাস্তবায়ন? 84 00:03:43,120 --> 00:03:45,990 অন্য কথায়, আমি বাস্তবায়ন করছি যদি জীবনে যার উদ্দেশ্য ফাংশন 85 00:03:45,990 --> 00:03:48,889 তারপর কোন int এবং নিতে হয় একটি লিঙ্ক তালিকা শুরুতে, 86 00:03:48,889 --> 00:03:50,430 যে লিঙ্ক তালিকায় একটি পয়েন্টার. 87 00:03:50,430 --> 00:03:52,992 প্রথম ভালো লেগেছে, আমি ডেভিড যারা মনে আমাদের স্বেচ্ছাসেবক, সোমবার ছিল 88 00:03:52,992 --> 00:03:54,700 তিনি এ নির্দেশ ছিল পুরো লিঙ্ক তালিকা, 89 00:03:54,700 --> 00:03:57,820 আমরা পার করছি যদিও এটা হিসাবে ডেভিড এখানে আমাদের আর্গুমেন্ট হিসাবে. 90 00:03:57,820 --> 00:03:59,990 কিভাবে আমরা এই তালিকায় ঘোরা সম্পর্কে যান? 91 00:03:59,990 --> 00:04:04,640 ওয়েল, দেখা যাচ্ছে যে, যদিও পয়েন্টার, আমাদের এখন তুলনামূলকভাবে নতুন 92 00:04:04,640 --> 00:04:07,010 আমরা তুলনামূলকভাবে এই কাজ করতে পারেন সরাসরি. 93 00:04:07,010 --> 00:04:09,500 >> আমি এগিয়ে যেতে চলেছি এবং একটি অস্থায়ী ভেরিয়েবল ডিক্লেয়ার যে 94 00:04:09,500 --> 00:04:12,364 কনভেনশন দ্বারা শুধু যাচ্ছে যাও, PTR পয়েন্টার বলা হয়, বা করা 95 00:04:12,364 --> 00:04:14,030 কিন্তু আপনি কিছু করতে চান তা বলতে পেরেছিলাম. 96 00:04:14,030 --> 00:04:16,470 আর আমি আরম্ভ করতে যাচ্ছি এটা তালিকার শুরুর করার. 97 00:04:16,470 --> 00:04:20,050 তাই আপনি যদি এই ধরনের মনে করতে পারেন আমার শিক্ষক হিসাবে অন্যান্য দিন, 98 00:04:20,050 --> 00:04:23,580 ধরনের কেউ এ ইশারা স্বেচ্ছাসেবী হিসাবে আমাদের মানুষের মধ্যে. 99 00:04:23,580 --> 00:04:26,470 তাই আমি যে একটি অস্থায়ী পরিবর্তনশীল আছি ঠিক একই জিনিস টার দিকে নির্দেশ 100 00:04:26,470 --> 00:04:31,390 আমাদের কাকতালীয়ভাবে নামে যে স্বেচ্ছাসেবক দায়ূদ ইশারা ছিল. 101 00:04:31,390 --> 00:04:35,440 এখন পয়েন্টার যখন নাল না, কারণ রিকল 102 00:04:35,440 --> 00:04:40,350 যে নাল কিছু বিশেষ সেন্টিনেলে মান তালিকার শেষ demarcates 103 00:04:40,350 --> 00:04:44,280 আমি এ ইশারা করছি না, তাই যখন আমাদের সর্বশেষ স্বেচ্ছাসেবক মত মাটিতে 104 00:04:44,280 --> 00:04:47,190 ছিল, আসুন এগিয়ে যান এবং নিচের কাজগুলো. 105 00:04:47,190 --> 00:04:51,820 পয়েন্টার এবং এখন যদি আমি ধরনের চান আমরা ছাত্র সঙ্গে কি কি করতে 106 00:04:51,820 --> 00:04:57,410 কাঠামো পয়েন্টার ডট পরের তাহলে সমান পয়েন্টার ডট এন, সমান বরং যদি 107 00:04:57,410 --> 00:05:02,290 পরিবর্তনশীল N, সমান এ পাশ হয়েছে যে যুক্তি, 108 00:05:02,290 --> 00:05:05,370 তারপর আমি এগিয়ে যেতে চান এবং সত্য ফিরে বলে. 109 00:05:05,370 --> 00:05:11,020 আমি ভেতরে সংখ্যা n পাওয়া যায় আমার লিঙ্ক তালিকা নোড এক. 110 00:05:11,020 --> 00:05:13,500 কিন্তু বিন্দু আর এই প্রেক্ষাপটে কাজ, 111 00:05:13,500 --> 00:05:17,260 পয়েন্টার, PTR, কারণ প্রকৃতপক্ষে একটি পয়েন্টার, একটি ঠিকানা, 112 00:05:17,260 --> 00:05:20,632 আমরা আসলে একটি wonderfully পারেন সিনট্যাক্স অবশেষে এক টুকরা ব্যবহার 113 00:05:20,632 --> 00:05:22,590 তোলে তজ্জাতীয় স্বজ্ঞাত অর্থে এবং আসলে 114 00:05:22,590 --> 00:05:27,870 থেকে যান, যার মানে, এখানে একটি তীর ব্যবহার সেখানে পূর্ণসংখ্যা যে অঙ্ক. 115 00:05:27,870 --> 00:05:30,160 সুতরাং যে ব্যক্তি অনুরূপ ডট অপারেটর আত্মা, 116 00:05:30,160 --> 00:05:33,860 কিন্তু পয়েন্টার একটি পয়েন্টার না থাকার কারণে এবং না একটি প্রকৃত struct নিজেই, 117 00:05:33,860 --> 00:05:35,380 আমরা শুধু তীর ব্যবহার. 118 00:05:35,380 --> 00:05:40,620 >> যদি তাই বর্তমান নোড যে আমি, অস্থায়ী পরিবর্তনশীল, এ ইশারা করছি 119 00:05:40,620 --> 00:05:43,060 এন, আমি কি করতে চাও না? 120 00:05:43,060 --> 00:05:45,910 ওয়েল, আমার মানুষের স্বেচ্ছাসেবকদের সঙ্গে আমরা অন্যান্য দিন এখানে ছিল যে, 121 00:05:45,910 --> 00:05:49,710 আমার প্রথম মানব এক আমি না হয় তাহলে চান, এবং হয়ত দ্বিতীয় মানব নয় 122 00:05:49,710 --> 00:05:52,660 আমি চাই এক, এবং তৃতীয়, আমি চলন্ত শারীরিকভাবে রাখা প্রয়োজন. 123 00:05:52,660 --> 00:05:54,690 চাই কিভাবে আমি একটি তালিকা মাধ্যমে পইঠা না? 124 00:05:54,690 --> 00:05:57,470 আমরা একটি অ্যারের ছিল, আপনি শুধু আমি প্লাস প্লাস চাই না. 125 00:05:57,470 --> 00:06:03,660 কিন্তু এই ক্ষেত্রে, এটা করার জন্য যথেষ্ট পরের, পয়েন্টার, পায়, পয়েন্টার না. 126 00:06:03,660 --> 00:06:07,580 অন্য কথায়, পরের ক্ষেত্রের বাম হাতের সব ভালো হয় 127 00:06:07,580 --> 00:06:10,880 সোমবার আমাদের মানব স্বেচ্ছাসেবকদের অন্য কিছু নোড এ নির্দেশ ব্যবহার ছিল. 128 00:06:10,880 --> 00:06:12,890 যারা তাদের পাশে প্রতিবেশীদের ছিল. 129 00:06:12,890 --> 00:06:17,060 >> আমি এই তালিকার মাধ্যমে পইঠা করতে চান তাহলে, আমি শুধু, আর আমি কি প্লাস প্লাস পারবেন না 130 00:06:17,060 --> 00:06:20,120 আমি পরিবর্তে বলার আছে আমি পয়েন্টার, যাচ্ছে 131 00:06:20,120 --> 00:06:24,650 পরবর্তী ক্ষেত্রে যাই হোক না কেন সমান, পরবর্তী ক্ষেত্রে, পরের ক্ষেত্রের কিছু r, হয় 132 00:06:24,650 --> 00:06:28,350 যারা বাম হাতের সমস্ত নিম্নলিখিত আমরা পর্যায়ে প্রতি নির্দেশ ছিল যে 133 00:06:28,350 --> 00:06:30,000 কিছু পরবর্তী মান. 134 00:06:30,000 --> 00:06:32,590 আর আমি মাধ্যমে পেতে হলে যে পুরো পুনরাবৃত্তির, 135 00:06:32,590 --> 00:06:39,330 এবং পরিশেষে, আমি না থাকার নাল আঘাত পাওয়া এন এখনও, আমি শুধু তাই ফিরে এলাম. 136 00:06:39,330 --> 00:06:44,100 তাই আবার, আমরা এখানে কি করছেন যে সব, একটি মুহূর্ত আগে ছবি অনুযায়ী, 137 00:06:44,100 --> 00:06:47,840 প্রতি নির্দেশ করে শুরু হয় সম্ভবতঃ তালিকা শুরুতে. 138 00:06:47,840 --> 00:06:50,970 এবং তারপর আমি পরীক্ষা, মান আমি নয়টি সমান খুঁজছি? 139 00:06:50,970 --> 00:06:52,650 যদি তাই হয়, আমি সত্য ফিরে এবং আমি কাজ করছি. 140 00:06:52,650 --> 00:06:56,450 যদি না হয়, আমি আমার হাত আপডেট, ওরফে পয়েন্টার, নির্দেশ 141 00:06:56,450 --> 00:06:59,540 পরের তীর এর অবস্থানে, এবং তারপর পরবর্তী তীর এর অবস্থান, 142 00:06:59,540 --> 00:07:00,480 এবং পরের. 143 00:07:00,480 --> 00:07:03,770 আমি কেবল এই অ্যারে মাধ্যমে হাঁটা করছি. 144 00:07:03,770 --> 00:07:06,010 >> তাই আবার, যারা বজায় রাখে? 145 00:07:06,010 --> 00:07:07,861 ভালো লেগেছে এই জন্য একটি উপাদান কি? 146 00:07:07,861 --> 00:07:10,360 ওয়েল, আমরা চালু প্রত্যাহার একটি স্ট্যাক এর ধারণা, যা 147 00:07:10,360 --> 00:07:15,400 হিসেবে এটি একটি বিমূর্ত তথ্য যতটা টাইপ হয় না একটি সি জিনিস, এটা একটি CS50 জিনিস না, 148 00:07:15,400 --> 00:07:19,430 এটি একটি বিমূর্ত ধারণা, এই ধারণা একে অপরের উপরে কিছু stacking 149 00:07:19,430 --> 00:07:21,820 যে প্রয়োগ করা যেতে পারে বিভিন্ন উপায়ে কাঁদি. 150 00:07:21,820 --> 00:07:25,600 আর আমরা প্রস্তাব একটি উপায় সঙ্গে ছিল একটি অ্যারের, বা একটি লিঙ্ক তালিকা. 151 00:07:25,600 --> 00:07:29,570 এবং এটি একটি, যে canonically সক্রিয় আউট স্ট্যাক অন্তত দুটি অপারেশন সমর্থন করে. 152 00:07:29,570 --> 00:07:32,320 এবং Buzz শব্দ, ধাক্কা স্ট্যাকের মধ্যে কিছু ধাক্কা, 153 00:07:32,320 --> 00:07:34,770 একটি নতুন ট্রে মত ডাইনিং হল, বা পপ, 154 00:07:34,770 --> 00:07:39,000 যা আগ অপসারণ মানে ডাইনিং স্ট্যাক থেকে ট্রে 155 00:07:39,000 --> 00:07:41,500 হল, এবং তারপর হয়তো কিছু অন্যান্য অপারেশন পাশাপাশি. 156 00:07:41,500 --> 00:07:45,770 তাই কিভাবে আমরা কাঠামো নির্ধারণ পারে আমরা এখন একটি স্ট্যাক আহ্বান করছি যে? 157 00:07:45,770 --> 00:07:50,020 >> ওয়েল, আমরা প্রয়োজনীয় সব আছে আমি বলতে সি আমাদের নিষ্পত্তি সিনট্যাক্স, 158 00:07:50,020 --> 00:07:53,830 আমার একটি টাইপ সংজ্ঞা দিতে একটি স্ট্যাকের ভিতরে একটি struct, 159 00:07:53,830 --> 00:07:58,030 আমি একটি, একটি অ্যারে বলতে যাচ্ছি পুরো সংখ্যার গুচ্ছ এবং তারপর আকার. 160 00:07:58,030 --> 00:08:00,930 তাই অন্য কথায়, যদি আমি চাই কোড এই বাস্তবায়ন, 161 00:08:00,930 --> 00:08:03,830 আমি গিয়ে শুধু ধরনের দিন এই কি বলছে না আঁকা. 162 00:08:03,830 --> 00:08:06,317 এই বলার অপেক্ষা রাখে না, তাই আমাকে একটি দিতে একটি অ্যারের পেয়েছিলাম যে কাঠামো, 163 00:08:06,317 --> 00:08:09,400 এবং আমি ক্ষমতা কি জানেন না এটা আমি করেছি যে দৃশ্যত কিছু ধ্রুবক 164 00:08:09,400 --> 00:08:10,858 অন্যত্র সংজ্ঞায়িত, এবং যে সূক্ষ্ম. 165 00:08:10,858 --> 00:08:15,260 কিন্তু, এটা শুধু একটা অনুমান দুই, তিন, চার, পাঁচ. 166 00:08:15,260 --> 00:08:16,700 তাই ক্ষমতা 5. 167 00:08:16,700 --> 00:08:21,730 ভিতর এই উপাদান আমার কাঠামো সংখ্যা বলা হবে. 168 00:08:21,730 --> 00:08:24,020 এবং তারপর আমি এক প্রয়োজন অন্যান্য পরিবর্তনশীল দৃশ্যত 169 00:08:24,020 --> 00:08:27,814 প্রথমে আমি যাচ্ছি যে বলা আকার শূন্য প্রারম্ভের উপপত্রিক. 170 00:08:27,814 --> 00:08:29,730 কিছুই আছে কি না তা স্ট্যাক, আকার, শূন্য 171 00:08:29,730 --> 00:08:31,420 এবং এটি সংখ্যায় আবর্জনা মান. 172 00:08:31,420 --> 00:08:33,450 আমি এখনও সেখানে কি কোন ধারণা আছে. 173 00:08:33,450 --> 00:08:36,059 >> আমি ধাক্কা চান তাই স্ট্যাকের মধ্যে কিছু, 174 00:08:36,059 --> 00:08:40,780 আমি ফাংশন ধাক্কা কল অনুমান, এবং আমি সংখ্যা 50 মত, 50 বলে ধাক্কা 175 00:08:40,780 --> 00:08:44,090 যেখানে আপনি উত্থাপন করা হবে আমি এই অ্যারের মধ্যে এটি আঁকা? 176 00:08:44,090 --> 00:08:47,124 পাঁচটি পৃথক সম্ভাব্য উত্তর আছে. 177 00:08:47,124 --> 00:08:48,790 কোথায় আপনি সংখ্যা 50 ধাক্কা চাও? 178 00:08:48,790 --> 00:08:51,899 এখানে লক্ষ্য যদি, আবার কল ফাংশন ধাক্কা, একটি আর্গুমেন্ট পাস 179 00:08:51,899 --> 00:08:52,940 50 এর, যেখানে আমি এটি স্থাপন করা হয়? 180 00:08:52,940 --> 00:08:55,680 181 00:08:55,680 --> 00:08:59,052 পাঁচ possible-- 20% সম্ভাবনা এর সঠিকভাবে অনুমান. 182 00:08:59,052 --> 00:08:59,896 হ্যাঁ? 183 00:08:59,896 --> 00:09:00,740 >> শ্রোতা: দূরে ডান. 184 00:09:00,740 --> 00:09:01,990 >> বক্তা 1: দূরে ডান. 185 00:09:01,990 --> 00:09:08,359 একটি 25% সম্ভাবনা এখন নেই এর সঠিকভাবে অনুমান. 186 00:09:08,359 --> 00:09:09,650 সুতরাং যে আসলে জরিমানা করা হবে. 187 00:09:09,650 --> 00:09:12,770 কনভেনশন দ্বারা, আমি একটি অ্যারের সাথে বলবো, আমরা সাধারণত, বাম থেকে খেলা আরম্ভ হবে 188 00:09:12,770 --> 00:09:14,519 কিন্তু আমরা অবশ্যই পারে ডানদিকে শুরু. 189 00:09:14,519 --> 00:09:17,478 সুতরাং এখানে ভক্ষক আমি হতে হবে সম্ভবত বাম এটা আঁকতে, 190 00:09:17,478 --> 00:09:20,060 শুধু একটি স্বাভাবিক অ্যারে যেখানে চান আমি ডানে বামে যাওয়া শুরু. 191 00:09:20,060 --> 00:09:21,780 কিন্তু আপনি টুসকি পারেন তাহলে গাণিতিক, সূক্ষ্ম. 192 00:09:21,780 --> 00:09:23,060 এটা শুধু প্রচলিত নয়. 193 00:09:23,060 --> 00:09:24,880 ঠিক আছে, আমি এক করতে হবে যদিও আরো পরিবর্তন. 194 00:09:24,880 --> 00:09:27,710 এখন আমি কিছু ধাক্কা করেছি যে স্ট্যাকের মধ্যে, কি করব? 195 00:09:27,710 --> 00:09:29,400 >> ঠিক আছে, আমি আকার বাড়ায় আছে. 196 00:09:29,400 --> 00:09:32,600 তাই আমাকে এগিয়ে এবং শুধু যেতে দিন শূন্য যা ছিল এই, আপডেট. 197 00:09:32,600 --> 00:09:35,950 এর পরিবর্তে এখন আমি যাচ্ছি মূল্য এক করা. 198 00:09:35,950 --> 00:09:39,460 এবং এখন আমি অন্য ধাক্কা অনুমান স্ট্যাকের মধ্যে সংখ্যা, 51 মত. 199 00:09:39,460 --> 00:09:42,680 ওয়েল, আমি আরও একটি করতে হবে আকার দুটি পর্যন্ত যা পরিবর্তন. 200 00:09:42,680 --> 00:09:46,100 এবং তারপর আমি আরো এক ধাক্কা অনুমান 61 ভালো স্ট্যাকের মধ্যে নম্বর, 201 00:09:46,100 --> 00:09:52,530 এখন আমি মাপ আপডেট করা দরকার আরও একটি সময়, এবং মাপ হিসাবে মান 3 পেতে. 202 00:09:52,530 --> 00:09:54,690 এবং এখন আমি পপ কল অনুমান. 203 00:09:54,690 --> 00:09:57,250 এখন কনভেনশন দ্বারা, পপ, একটি আর্গুমেন্ট গ্রহণ করা হয় না. 204 00:09:57,250 --> 00:10:00,430 একটি স্ট্যাক সঙ্গে, পুরো ট্রে রূপক বিন্দু 205 00:10:00,430 --> 00:10:03,450 আপনি বিচক্ষণতা আছে না হয় যে ট্রে পেতে যেতে, সব আপনি কি করতে পারেন 206 00:10:03,450 --> 00:10:06,330 থেকে আগ এক পপ হয় স্ট্যাক, মাত্র কারণ. 207 00:10:06,330 --> 00:10:08,010 এই তথ্য যে কাঠামো আছে কি. 208 00:10:08,010 --> 00:10:12,250 >> তাহলে যে যুক্তি দ্বারা তাই আমি পপ, তা বন্ধ আসে বলে? 209 00:10:12,250 --> 00:10:13,080 তাই 61. 210 00:10:13,080 --> 00:10:15,402 সত্যিই তাই কম্পিউটার কি মেমরি কাজ করতে যাচ্ছেন? 211 00:10:15,402 --> 00:10:16,610 কি আমার কোড কি আছে? 212 00:10:16,610 --> 00:10:20,330 আপনি কি উত্থাপন করা হবে আমরা পর্দায় পরিবর্তন? 213 00:10:20,330 --> 00:10:23,410 কি পরিবর্তন করা উচিত? 214 00:10:23,410 --> 00:10:24,960 দুঃখিত? 215 00:10:24,960 --> 00:10:26,334 তাই আমরা 61 এর পরিত্রাণ পেতে. 216 00:10:26,334 --> 00:10:27,500 তাই আমি স্পষ্টভাবে তা করতে পারে. 217 00:10:27,500 --> 00:10:28,640 আর আমি 61 পরিত্রাণ পেতে পারেন. 218 00:10:28,640 --> 00:10:30,980 এবং তারপর কি অন্যান্য পরিবর্তন ঘটতে প্রয়োজন? 219 00:10:30,980 --> 00:10:33,160 আকার সম্ভবত দুই ফিরে যেতে হয়েছে. 220 00:10:33,160 --> 00:10:34,210 আর তাই যে সূক্ষ্ম. 221 00:10:34,210 --> 00:10:36,690 কিন্তু একটি মিনিট, আকার অপেক্ষা একটি মুহূর্ত আগে তিনটি ছিল. 222 00:10:36,690 --> 00:10:38,240 এর মাত্র একটি দ্রুত বৈধতা না পরীক্ষা. 223 00:10:38,240 --> 00:10:41,810 আমরা কিভাবে আমরা জানি যে হয়নি 61 পরিত্রাণ পেতে চান? 224 00:10:41,810 --> 00:10:42,760 আমরা পপিং করছি. 225 00:10:42,760 --> 00:10:46,450 এবং তাই আমি এই দ্বিতীয় সম্পত্তি আকার আছে. 226 00:10:46,450 --> 00:10:48,470 >> আমি আছি, এক মিনিট অপেক্ষা করুন সপ্তাহে দুই ফিরে চিন্তা 227 00:10:48,470 --> 00:10:51,660 আমরা যে বিষয়ে কথা শুরু হলে এই পাঁচ শূন্য ছিল যেখানে অ্যারে, 228 00:10:51,660 --> 00:10:55,920 এই পাঁচ ছিল, এই অবস্থান ছিল দুই, এই পাঁচ তিন, চার, 229 00:10:55,920 --> 00:10:58,460 এটা দেখে মনে হচ্ছে আকার মধ্যে সম্পর্ক 230 00:10:58,460 --> 00:11:02,780 এবং আমি চাই যে উপাদান মুছে ফেলার জন্য অ্যারে থেকে শুধু কি উপস্থিত হতে পারে? 231 00:11:02,780 --> 00:11:05,120 আকার বিয়োগ এক. 232 00:11:05,120 --> 00:11:07,786 আর তাই যে কিভাবে মানুষের হিসাবে আমরা 61 প্রথম আসে জানেন. 233 00:11:07,786 --> 00:11:09,160 কিভাবে কম্পিউটার জানা যাচ্ছে? 234 00:11:09,160 --> 00:11:11,701 যখন আপনার কোড, যেখানে আপনি সম্ভবত আকার বিয়োগ এক কাজ করতে চান, 235 00:11:11,701 --> 00:11:14,950 তাই তিন বিয়োগ এক দুই, এবং যে হয় আমরা 61 এর পরিত্রাণ পেতে চান মানে. 236 00:11:14,950 --> 00:11:18,000 এবং তারপর আমরা প্রকৃতপক্ষে আপডেট করতে পারেন যে আকারের তাই আকার এখন 237 00:11:18,000 --> 00:11:20,300 মাত্র দুই থেকে তিন থেকে যায়. 238 00:11:20,300 --> 00:11:24,520 আর শুধু গোঁড়া হবে, আমি যাচ্ছি ঠিক আছে, আমি কাজ করছি যে উত্থাপন করা? 239 00:11:24,520 --> 00:11:27,660 আপনি intuitively প্রস্তাবিত সঠিকভাবে আমি 61 পরিত্রাণ পাওয়া উচিত. 240 00:11:27,660 --> 00:11:30,700 কিন্তু নেই আমি ধরনের সাজান 61 পরিত্রাণ অর্জিত? 241 00:11:30,700 --> 00:11:33,790 আমি কার্যকরভাবে বিস্মৃত করেছি যে এটা আসলে আছে. 242 00:11:33,790 --> 00:11:37,680 আপনি পড়তে করেছি, ফিরে Pset4 মনে ফরেনসিক সম্পর্কে নিবন্ধ, পিডিএফ 243 00:11:37,680 --> 00:11:40,780 আমরা ছিল যে আপনাকে বলছি পড়তে, অথবা আপনি Pset4 জন্য এই সপ্তাহে পড়তে হবে. 244 00:11:40,780 --> 00:11:44,300 এই করতে আসলে সঙ্গত যে প্রত্যাহার কম্পিউটার ফরেনসিক পুরো ধারণা. 245 00:11:44,300 --> 00:11:47,820 কি একটি কম্পিউটার সাধারণতঃ হয় কিছু হয় যেখানে এটি শুধু, ভুলে যায় 246 00:11:47,820 --> 00:11:51,300 কিন্তু এটা যান এবং মত না এটি বা ওভাররাইড স্ক্র্যাচ চেষ্টা 247 00:11:51,300 --> 00:11:54,560 zeros এবং বেশী সঙ্গে যারা বিট বা অন্য কিছু র্যান্ডম প্যাটার্ন 248 00:11:54,560 --> 00:11:56,690 আপনি যদি না নিজেকে তাই ইচ্ছাকৃতভাবে না. 249 00:11:56,690 --> 00:11:58,930 সুতরাং আপনার অনুভূতি ছিল ঠিক আছে, এর 61 পরিত্রাণ পেতে যাক. 250 00:11:58,930 --> 00:12:00,650 কিন্তু বাস্তবে আমরা বিরক্ত করতে হবে না. 251 00:12:00,650 --> 00:12:04,040 আমরা শুধু যে ভুলে যাওয়া প্রয়োজন এটা তোলে আমাদের আকার পরিবর্তন করে আছে. 252 00:12:04,040 --> 00:12:05,662 >> এখন এই স্ট্যাকের সঙ্গে একটা সমস্যা আছে. 253 00:12:05,662 --> 00:12:07,620 আমি ঠেলে জিনিস রাখা স্ট্যাকের মধ্যে, কি 254 00:12:07,620 --> 00:12:11,167 স্পষ্টত ঘটতে যাচ্ছে মাত্র কয়েক মুহূর্তের সময়? 255 00:12:11,167 --> 00:12:12,500 আমরা স্থান ফুরিয়ে যাচ্ছেন. 256 00:12:12,500 --> 00:12:13,580 এবং আমরা কি করতে পারি? 257 00:12:13,580 --> 00:12:14,680 আমরা কোন ধরনের মাতাল করছি. 258 00:12:14,680 --> 00:12:19,000 এই বাস্তবায়ন করতে দেওয়া হয় না ব্যবহার, কারণ আমাদের অ্যারের মাপ পরিবর্তন 259 00:12:19,000 --> 00:12:21,240 এই বাক্য গঠন, আপনি যদি সপ্তাহে দুই ফিরে মনে, 260 00:12:21,240 --> 00:12:23,520 আপনি ঘোষণা করেছি একবার একটি অ্যারের আকার, 261 00:12:23,520 --> 00:12:26,780 আমরা এখনো যেখানে একটি প্রক্রিয়া দেখা যায় নি আপনি অ্যারে মাপ পরিবর্তন করতে পারেন. 262 00:12:26,780 --> 00:12:29,020 এবং প্রকৃতপক্ষে সি যে বৈশিষ্ট্য নেই. 263 00:12:29,020 --> 00:12:32,524 আপনি যদি বলি আমার পাঁচটি দিতে Nths, তাদের সাথে যোগাযোগ করে নম্বর, 264 00:12:32,524 --> 00:12:33,940 যে আপনি এটি পেতে যাচ্ছেন সব. 265 00:12:33,940 --> 00:12:38,790 সুতরাং আমরা সোমবার হিসাবে এখন কি, আছে একটি সমাধান প্রকাশ করার ক্ষমতা 266 00:12:38,790 --> 00:12:42,480 যদিও, আমরা শুধু খামচি করতে হবে আমাদের স্ট্যাকের সংজ্ঞা 267 00:12:42,480 --> 00:12:46,840 কিছু হার্ড কোডেড অ্যারে হতে না করার জন্য, কিন্তু শুধু একটি ঠিকানা সংরক্ষণ. 268 00:12:46,840 --> 00:12:47,890 >> এখন এই হল কেন? 269 00:12:47,890 --> 00:12:51,690 এখন আমরা শুধু সঙ্গে আরামদায়ক হতে হবে আসলে আমার প্রোগ্রাম রান যখন যে, 270 00:12:51,690 --> 00:12:53,730 আমি সম্ভবতঃ যাচ্ছি মানুষের জিজ্ঞাসা আছে, 271 00:12:53,730 --> 00:12:55,110 কত নম্বর আপনি কি সেটি বদলাতে চান? 272 00:12:55,110 --> 00:12:56,776 তাই ইনপুট কোথাও থেকে আসা হয়েছে. 273 00:12:56,776 --> 00:12:59,140 কিন্তু আমি জানি যে একবার সংখ্যা, তারপর আমি যা করতে পারেন 274 00:12:59,140 --> 00:13:02,470 দিতে ফাংশন কি ব্যবহার আমার মেমরি একটি খণ্ড? 275 00:13:02,470 --> 00:13:03,580 আমি malloc ব্যবহার করতে পারেন. 276 00:13:03,580 --> 00:13:06,710 আর আমি কোনো সংখ্যা বলতে পারেন বাইট আমি ফিরে এই Nths জন্য চান. 277 00:13:06,710 --> 00:13:10,910 এবং সব আমি সংখ্যায় সঞ্চয় আছে এই struct ভিতরে এখানে পরিবর্তনশীল 278 00:13:10,910 --> 00:13:13,480 কি হওয়া উচিত? 279 00:13:13,480 --> 00:13:18,440 কি আসলে মধ্যে যায় এই দৃশ্যকল্প মধ্যে নম্বর? 280 00:13:18,440 --> 00:13:21,300 হ্যা, প্রথম একটি পয়েন্টার মেমরি যে তাল বাইট, 281 00:13:21,300 --> 00:13:24,940 বা আরো নির্দিষ্টভাবে, অঙ্ক যারা বাইট প্রথম. 282 00:13:24,940 --> 00:13:27,300 এটা এক যদি কোন ব্যাপার না বাইট বা বিলিয়ন বাইট, 283 00:13:27,300 --> 00:13:28,890 আমি শুধু প্রথম যত্নের প্রয়োজন. 284 00:13:28,890 --> 00:13:31,530 কারণ কি malloc নিশ্চয়তা ও আমার অপারেটিং সিস্টেম নিশ্চয়তা, 285 00:13:31,530 --> 00:13:34,170 যে মেমরি আমি খণ্ড পেতে, এটা সংলগ্ন হতে যাচ্ছে. 286 00:13:34,170 --> 00:13:35,378 ফাঁক হতে যাচ্ছে না. 287 00:13:35,378 --> 00:13:38,576 আমি 50 এর জন্য জিজ্ঞাসা করেছি, তাই যদি বাইট বা 1,000 বাইট, 288 00:13:38,576 --> 00:13:40,450 তারা সব হতে যাচ্ছেন ফিরে ফিরে যাও যাও যাও. 289 00:13:40,450 --> 00:13:44,500 আর এতক্ষণ আমি কিভাবে বড় মনে হিসাবে অনেক আমি আমার জানা দরকার, সব জন্য জিজ্ঞাসা 290 00:13:44,500 --> 00:13:46,230 প্রথম যেমন ঠিকানা. 291 00:13:46,230 --> 00:13:48,660 >> তাই এখন আমরা কোড মধ্যে ক্ষমতা আছে. 292 00:13:48,660 --> 00:13:51,280 যদ্যপি এটা আমাদের নিতে যাচ্ছে আরো সময়, এই পর্যন্ত লিখতে 293 00:13:51,280 --> 00:13:55,900 আমরা এখন যে মেমরি বরাদ্দ করতে পারে শুধু আছে একটি ভিন্ন ঠিকানা সংরক্ষণ করা 294 00:13:55,900 --> 00:13:59,060 আমরা এমনকি একটি বড় বা চান মেমরি একটি ছোট খণ্ড. 295 00:13:59,060 --> 00:14:00,170 তাই এখানে একটি ট্রেড বন্ধ করার. 296 00:14:00,170 --> 00:14:01,360 এখন আমরা গতিশীলতা পেতে. 297 00:14:01,360 --> 00:14:03,350 আমাদের এখনো আছে contiguousness আমি দাবি করছি. 298 00:14:03,350 --> 00:14:05,881 যদি malloc আমাদের দিতে হবে, কারণ মেমরি সংলগ্ন অঞ্চলে. 299 00:14:05,881 --> 00:14:08,630 কিন্তু এই একটি ব্যথা হতে যাচ্ছে আমাদের জন্য ঘাড়, প্রোগ্রামার, 300 00:14:08,630 --> 00:14:09,770 আসলে আপ কোড. 301 00:14:09,770 --> 00:14:10,730 এটা শুধু আরো কাজ. 302 00:14:10,730 --> 00:14:13,930 আমরা আমি কি ছিল সদৃশ কোড প্রয়োজন শুধু একটা মুহূর্ত আগে আউট banging. 303 00:14:13,930 --> 00:14:16,120 অত্যন্ত doable কিন্তু এটা জটিলতা যোগ. 304 00:14:16,120 --> 00:14:19,520 আর তাই ডেভেলপার সময়, প্রোগ্রামার সময় এখনও অন্য সম্পদ 305 00:14:19,520 --> 00:14:22,520 আমরা ব্যয় করার প্রয়োজন হতে পারে যে কিছু সময় নতুন বৈশিষ্ট্য পেতে. 306 00:14:22,520 --> 00:14:24,020 এবং তারপর অবশ্যই একটি কিউ আছে. 307 00:14:24,020 --> 00:14:26,227 আমরা এই মধ্যে যেতে হবে না অনেক বিস্তারিতভাবে এক. 308 00:14:26,227 --> 00:14:27,560 কিন্তু এটা আত্মা খুব অনুরূপ. 309 00:14:27,560 --> 00:14:31,220 আমি একটি কিউ বাস্তবায়ন করতে পারে, এবং তার সংশ্লিষ্ট অপারেশন, 310 00:14:31,220 --> 00:14:35,660 সারিবদ্ধ বা dequeue, যোগ অথবা অপসারণ করতে চাই, এটা বলার অপেক্ষা রাখে না শুধু একটি কল্পনাকারী উপায় 311 00:14:35,660 --> 00:14:38,100 সারিবদ্ধ বা dequeue, হিসাবে অনুসরণ করে. 312 00:14:38,100 --> 00:14:41,170 আমি শুধু নিজেকে একটি struct দিতে পারেন যে আবার একটি সংখ্যা এর অ্যারে আছে, 313 00:14:41,170 --> 00:14:44,000 যে আবার একটি আকার আছে, কিন্তু কেন আমি এখন যা দরকার তা না 314 00:14:44,000 --> 00:14:46,940 একটি কিউ সামনে ট্র্যাক রাখতে? 315 00:14:46,940 --> 00:14:50,630 আমি জানতে হবে না আমার স্ট্যাকের সামনে. 316 00:14:50,630 --> 00:14:53,570 ওয়েল, যদি আমি আবার একটি queue-- শুধু কঠিন দিন 317 00:14:53,570 --> 00:14:57,870 পাঁচটি মত থাকার হিসাবে এটি কোড এখানে সম্ভাব্য মধ্যে পূর্ণসংখ্যার. 318 00:14:57,870 --> 00:15:00,940 সুতরাং এই শূন্য, এক, দুই, তিন, চার হয়. 319 00:15:00,940 --> 00:15:03,430 এই হতে যাচ্ছে আবার বলা নম্বর. 320 00:15:03,430 --> 00:15:06,940 এবং এই আকার বলা হবে. 321 00:15:06,940 --> 00:15:10,056 >> কেন এটা যথেষ্ট নয় শুধু আকার আছে? 322 00:15:10,056 --> 00:15:11,680 ওয়েল, এর ঐ একই নম্বর ধাক্কা দেওয়া. 323 00:15:11,680 --> 00:15:14,220 তাই আমি সারিবদ্ধ, অথবা ধাক্কা pushed--. 324 00:15:14,220 --> 00:15:20,150 এখন আমি তখন 50 সারিবদ্ধ, এবং করব 51, এবং তারপর 61, এবং বিন্দু বিন্দু বিন্দু. 325 00:15:20,150 --> 00:15:21,070 সুতরাং যে সারিবদ্ধ এর. 326 00:15:21,070 --> 00:15:23,176 আমি তখন 61, তারপর 50, 51 সারিবদ্ধ. 327 00:15:23,176 --> 00:15:25,050 আর যে অভিন্ন দেখায় এখন পর্যন্ত একটি স্ট্যাক, 328 00:15:25,050 --> 00:15:27,190 ছাড়া আমি একটা পরিবর্তন করা হবে না. 329 00:15:27,190 --> 00:15:33,680 আমি এই সাইজ আপডেট করা দরকার, তাই আমি যেতে এখন দুই থেকে তিন এক শূন্য থেকে. 330 00:15:33,680 --> 00:15:35,760 আমি কিভাবে dequeue না? 331 00:15:35,760 --> 00:15:36,890 কি dequeue সঙ্গে ঘটবে? 332 00:15:36,890 --> 00:15:41,950 কে প্রথম এই তালিকায় খসা উচিত এটা আপেল দোকান লাইনে যদি? 333 00:15:41,950 --> 00:15:42,780 তাই 50. 334 00:15:42,780 --> 00:15:44,700 সুতরাং এটা কোন ধরনের নবতারাগুলোর এই সময়. 335 00:15:44,700 --> 00:15:47,880 শেষ সময় যেহেতু এটি সুপার ছিল সহজ শুধু, আকার বিয়োগ এক করতে 336 00:15:47,880 --> 00:15:51,440 আমি কার্যকরভাবে আমার অ্যারের শেষে পেতে সংখ্যা, যেখানে এটা 61 সরিয়ে ফেলা হয়. 337 00:15:51,440 --> 00:15:52,920 কিন্তু আমি 61 সরাতে চান না. 338 00:15:52,920 --> 00:15:55,030 আমি 50 নিতে চান যারা 5:00 এ ছিল 339 00:15:55,030 --> 00:15:56,790 জন্য রেখায় আপ নতুন আইফোন বা যে কোন বস্তু. 340 00:15:56,790 --> 00:16:01,200 আর তাই আমি 50 এর পরিত্রাণ পেতে ঠিক ঠিক, এই কাজ করতে পারে না? 341 00:16:01,200 --> 00:16:02,547 আমি 50 ক্রুশ আউট করতে পারেন. 342 00:16:02,547 --> 00:16:04,380 কিন্তু আমরা শুধু বলেন এত মলদ্বারে করা হবে না 343 00:16:04,380 --> 00:16:06,330 হিসাবে আউট স্ক্র্যাচ বা তথ্য লুকান. 344 00:16:06,330 --> 00:16:08,090 যেখানে এটা আমরা শুধু ভুলে যেতে পারেন. 345 00:16:08,090 --> 00:16:12,330 >> কিন্তু আমি এখন আমার আকার পরিবর্তন করা হলে দুই, এই যথেষ্ট তথ্য নেই 346 00:16:12,330 --> 00:16:15,711 আমার কিউ 'র মধ্যে কি ঘটছে জানতে? 347 00:16:15,711 --> 00:16:16,680 আসলে তা না. 348 00:16:16,680 --> 00:16:19,830 আমার আকার, দুই মত কিন্তু কিউ যেখানে শুরু নেই, 349 00:16:19,830 --> 00:16:22,980 বিশেষ করে আমি এখনও আছে স্মৃতিতে সেই একই নম্বর. 350 00:16:22,980 --> 00:16:24,260 50, 51, 61. 351 00:16:24,260 --> 00:16:27,090 তাই আমি মনে রাখা প্রয়োজন এখন সামনে যেখানে. 352 00:16:27,090 --> 00:16:29,630 তাই আমি প্রস্তাব হিসাবে সেখানে আমরা শুধু বলা আছে করব 353 00:16:29,630 --> 00:16:33,729 যার প্রাথমিক তম সামনে, মূল্য কি হওয়া উচিত ছিল? 354 00:16:33,729 --> 00:16:35,270 জিরো, তালিকা মাত্র শুরুতে. 355 00:16:35,270 --> 00:16:40,876 কিন্তু এখন ছাড়াও decrementing করতে আকার, আমরা শুধু সামনে বাড়ায়. 356 00:16:40,876 --> 00:16:42,000 এখন এখানে অন্য সমস্যা. 357 00:16:42,000 --> 00:16:43,030 তাই আমি যাব রাখতে একবার. 358 00:16:43,030 --> 00:16:47,520 এই সংখ্যা ধরুন মত 121, 124, এবং তারপর, সব dammit, 359 00:16:47,520 --> 00:16:48,610 আমি স্থান থেকে বাদ. 360 00:16:48,610 --> 00:16:50,390 কিন্তু আমি নই, একটি মিনিট অপেক্ষা করুন. 361 00:16:50,390 --> 00:16:55,630 গল্পের এই সময়ে, তাই, আকার এক, দুই যে অনুমান, 362 00:16:55,630 --> 00:17:00,370 তিন, চার, তাই আমি অনুমান যে আকার, সামনে এক, চার 363 00:17:00,370 --> 00:17:01,621 তাই 51 সামনে এ হয়. 364 00:17:01,621 --> 00:17:04,329 আমি এখানে অন্য একটি নম্বর লাগাতে চান, কিন্তু, সব dammit, আমি স্থান থেকে বাদ. 365 00:17:04,329 --> 00:17:06,710 কিন্তু আমি ঠিক আছে, সত্যিই নই? 366 00:17:06,710 --> 00:17:11,192 আমি কিছু কোথায় লাগাতে পারে 171 ভালো অতিরিক্ত মূল্য,? 367 00:17:11,192 --> 00:17:13,400 হ্যা, আমি আমার কর্তব্য শুধু ধরনের ঠিক আছে, ফিরে ওইখানে যান? 368 00:17:13,400 --> 00:17:18,161 এবং তারপর 50 ক্রুশ আউট, বা শুধু 171 সঙ্গে এটি মুছে ফেলা হয়. 369 00:17:18,161 --> 00:17:20,410 এবং আপনি কেন হতাশ করছি আমাদের সংখ্যা, তাই র্যান্ডম পেয়েছিলাম 370 00:17:20,410 --> 00:17:24,150 এই সাধারণত কম্পিউটার নেয়া হয় পরে CS50 হার্ভার্ড এ বিজ্ঞান কোর্স. 371 00:17:24,150 --> 00:17:27,510 কিন্তু যে একটি ভাল অপ্টিমাইজেশান ছিল, এখন, কারণ আমি স্থান নাশক করছি না. 372 00:17:27,510 --> 00:17:30,750 আমি এখনও মনে আছে কত বড় এই জিনিস মোট. 373 00:17:30,750 --> 00:17:31,500 এটা মোট পাঁচটি এর. 374 00:17:31,500 --> 00:17:33,375 কারণ আমি চাই না 51 মুছে শুরু. 375 00:17:33,375 --> 00:17:36,260 তাই এখন আমি এখনও স্থান বাইরে থাকি, তাই একই সমস্যা আগের মতোই. 376 00:17:36,260 --> 00:17:39,140 কিন্তু আপনি কিভাবে এখন দেখতে পারেন আপনার কোড, আপনি সম্ভবত 377 00:17:39,140 --> 00:17:41,910 আরো একটু লিখতে হবে জটিলতা যে ঘটতে. 378 00:17:41,910 --> 00:17:44,510 এবং সত্য, তা অপারেটর সি সম্ভবত দেয় 379 00:17:44,510 --> 00:17:48,110 আপনি magically এই গোলাকার না? 380 00:17:48,110 --> 00:17:50,160 হ্যা মডুলো অপারেটর, সাইন শতাংশ. 381 00:17:50,160 --> 00:17:53,160 সুতরাং একজন কিউ সম্পর্কে শীতল ধরনের কি, বাসায় ফিরে ড্রইং অ্যারে রাখতে যদিও 382 00:17:53,160 --> 00:17:56,520 এই মত সোজা লাইন হিসাবে, আপনি যদি ধরনের কুঁচন হিসেবে এই সম্পর্কে চিন্তা 383 00:17:56,520 --> 00:18:00,341 চারপাশে একটি বৃত্ত হিসাবে, তারপর শুধু intuitively, এটা কোন ধরনের মানসিকভাবে কাজ 384 00:18:00,341 --> 00:18:01,590 আমি আরো পরিচ্ছন্নভাবে একটু চিন্তা. 385 00:18:01,590 --> 00:18:05,190 আপনি এখনও বাস্তবায়ন করতে হবে কোড যে মানসিক মডেল. 386 00:18:05,190 --> 00:18:07,550 তাই না যে কঠিন, পরিণামে, বাস্তবায়ন 387 00:18:07,550 --> 00:18:12,430 কিন্তু আমরা এখনও বরং, size-- হারান আমরা যদি এমন ব্যবস্থা না ক্ষমতা, মাপ পরিবর্তন করতে. 388 00:18:12,430 --> 00:18:15,310 >> আমরা অ্যারে পরিত্রাণ পেতে আছে, আমরা একটি একক পয়েন্টার সঙ্গে এটি প্রতিস্থাপন, 389 00:18:15,310 --> 00:18:20,010 এবং তারপর কোথাও আমার কোড আমি পেয়েছেন একটি আসলে তৈরি করতে কাজ কি কল 390 00:18:20,010 --> 00:18:23,720 অ্যারে নামক সংখ্যার? 391 00:18:23,720 --> 00:18:26,190 Malloc, বা কিছু অনুরূপ ফাংশন, ঠিক. 392 00:18:26,190 --> 00:18:30,481 Stacks বা সারির উপর কোন প্রশ্ন. 393 00:18:30,481 --> 00:18:30,980 হ্যা? 394 00:18:30,980 --> 00:18:33,657 395 00:18:33,657 --> 00:18:34,240 ভালো প্রশ্ন. 396 00:18:34,240 --> 00:18:35,830 কি modulo আপনি এখানে ব্যবহার করবেন. 397 00:18:35,830 --> 00:18:38,520 তাই সাধারণত, ব্যবহার করার সময় মুড, আপনি এটা করতে হবে 398 00:18:38,520 --> 00:18:40,620 মাপ সঙ্গে পুরো ডাটা স্ট্রাকচার. 399 00:18:40,620 --> 00:18:44,120 তাই কিছু পাঁচ বা ক্ষমতা, তাহলে ভালো এটা ধ্রুব এর, সম্ভবত জড়িত হয়. 400 00:18:44,120 --> 00:18:47,100 কিন্তু শুধু মডুলো পাঁচটি করছেন সম্ভবত, যথেষ্ট নয় 401 00:18:47,100 --> 00:18:51,380 আমরা জানা প্রয়োজন, কারণ আমরা না এখানে অথবা এখানে অথবা এখানে চারপাশে মোড়ানো. 402 00:18:51,380 --> 00:18:54,160 সুতরাং আপনি সম্ভবত এছাড়াও আছেন চাই জড়িত যাচ্ছে 403 00:18:54,160 --> 00:18:57,220 জিনিস মাপ, অথবা পাশাপাশি সামনে পরিবর্তনশীল. 404 00:18:57,220 --> 00:19:00,140 তাই এটা শুধু এই অপেক্ষাকৃত এর সহজ গাণিতিক এক্সপ্রেশন, 405 00:19:00,140 --> 00:19:02,000 কিন্তু মডুলো মূল উপাদান হতে হবে. 406 00:19:02,000 --> 00:19:03,330 >> তাই সংক্ষিপ্ত ফিল্ম, যদি আপনি হবে. 407 00:19:03,330 --> 00:19:05,780 একটি অ্যানিমেশন যে কিছু অন্য বিশ্ববিদ্যালয়ে ভাবেন 408 00:19:05,780 --> 00:19:08,060 আমরা করেছি যে একত্রে এই আলোচনার জন্য অভিযোজিত. 409 00:19:08,060 --> 00:19:12,630 এটা জ্যাক শেখার জড়িত queues এবং পরিসংখ্যান সম্পর্কে তথ্য. 410 00:19:12,630 --> 00:19:19,010 411 00:19:19,010 --> 00:19:21,890 >> চলচ্চিত্র: একবার একটি সময় উপর, জ্যাক নামে একটি লোক ছিল. 412 00:19:21,890 --> 00:19:25,330 এটা বন্ধুদের তৈরীর যখন, জ্যাক একটি দক্ষতা আছে না. 413 00:19:25,330 --> 00:19:28,220 তাই জ্যাক সঙ্গে কথা বলতে গিয়েছিলাম সবচেয়ে জনপ্রিয় লোক সে জানত. 414 00:19:28,220 --> 00:19:30,920 তিনি লু গিয়েছিলাম এবং আমি কি করব, জিজ্ঞাসা? 415 00:19:30,920 --> 00:19:33,400 লু তার বন্ধু যে দেখেছি সত্যিই দুর্দশাগ্রস্ত ছিল. 416 00:19:33,400 --> 00:19:36,050 ওয়েল, সে শুধু, শুরু আপনি পরিহিত করছি কিভাবে দেখুন. 417 00:19:36,050 --> 00:19:38,680 যদি আপনার কোন কাপড় নেই একটি ভিন্ন চেহারা সঙ্গে? 418 00:19:38,680 --> 00:19:39,660 হ্যাঁ, জ্যাক বলেন. 419 00:19:39,660 --> 00:19:40,840 আমি অবশ্যই করি. 420 00:19:40,840 --> 00:19:43,320 আমার বাড়িতে আসা এবং আমি আপনাকে তাদের দেখাব. 421 00:19:43,320 --> 00:19:44,550 সুতরাং তারা জ্যাক এর গিয়েছিলাম বন্ধ. 422 00:19:44,550 --> 00:19:47,520 আর জ্যাক লু বক্সে দেখিয়েছেন যেখানে তিনি সব তার শার্ট রাখা 423 00:19:47,520 --> 00:19:49,260 এবং তার প্যান্ট, এবং তার মোজা. 424 00:19:49,260 --> 00:19:52,290 লু আমি আপনি দেখতে পাচ্ছি একটি গাদা সব জামাকাপড়. 425 00:19:52,290 --> 00:19:54,870 কেন আপনি কিছু পরেন না অল্প সময়ের মধ্যে একবার অন্যদের? 426 00:19:54,870 --> 00:19:58,020 >> জ্যাক বলেন, ভাল, যখন আমি , কাপড় ও মোজা অপসারণ 427 00:19:58,020 --> 00:20:00,780 আমি তাদের ধোয়া এবং করা তাদের দূরে বক্সে. 428 00:20:00,780 --> 00:20:03,210 তারপর পরের আসে সকালে, এবং আপ আমি প্রস্থান. 429 00:20:03,210 --> 00:20:06,380 আমি বক্সে যান এবং পেতে শীর্ষ বন্ধ আমার জামাকাপড়. 430 00:20:06,380 --> 00:20:09,070 লু দ্রুত উপলব্ধি জ্যাক সঙ্গে সমস্যা. 431 00:20:09,070 --> 00:20:12,080 তিনি, বস্ত্র, সিডি এর রাখা এবং স্ট্যাকের মধ্যে বই. 432 00:20:12,080 --> 00:20:14,420 তিনি পৌঁছেছেন কিছু পড়তে বা পরতে, 433 00:20:14,420 --> 00:20:17,100 তিনি উপরের বই বা আন্ডারওয়্যার নির্বাচন চাই. 434 00:20:17,100 --> 00:20:19,500 তারপর তিনি কখন দেওয়া হয়েছিল, তিনি ডান তা প্রতিহত করা হবে. 435 00:20:19,500 --> 00:20:21,970 এটি ফিরিয়ে স্ট্যাকের উপর, যেতে হবে. 436 00:20:21,970 --> 00:20:24,460 আমি সমাধান জানেন, একটি জয়যুক্ত অট্ট বলেন. 437 00:20:24,460 --> 00:20:27,090 আপনি শিখতে হবে একটি কিউ ব্যবহার শুরু. 438 00:20:27,090 --> 00:20:29,870 লু জ্যাক এর কাপড়-চোপড় নিয়ে এবং পায়খানা তাদের হ্যাঙ. 439 00:20:29,870 --> 00:20:32,710 তখন তিনি emptied ছিল যখন বক্স, তিনি শুধু এটি ক্ষতিগ্রস্থ. 440 00:20:32,710 --> 00:20:36,500 >> তারপর তিনি জ্যাক শেষে, এখন, বলেন প্রতিদিন, বাম আপনার জামাকাপড় করা 441 00:20:36,500 --> 00:20:37,990 আপনি তাদের দূরে রাখা হলে. 442 00:20:37,990 --> 00:20:41,300 তারপর কাল সকালে যখন আপনি আপনার কাপড় পেতে, রৌদ্র দেখতে 443 00:20:41,300 --> 00:20:43,440 লাইনের শেষে থেকে ডান, উপর. 444 00:20:43,440 --> 00:20:44,880 আপনি দেখতে পাচ্ছেন না? লু বলেন. 445 00:20:44,880 --> 00:20:46,370 এটা এত সুন্দর হতে হবে. 446 00:20:46,370 --> 00:20:49,770 আপনি একবার সবকিছু পরিধান করব আগে আপনি দুইবার কিছু পরতে. 447 00:20:49,770 --> 00:20:52,670 এবং সারির মধ্যে সবকিছু তার পায়খানা এবং বালুচর, 448 00:20:52,670 --> 00:20:55,160 জ্যাক অনুভব করতে শুরু নিজেকে পুরোপুরি নিশ্চিত. 449 00:20:55,160 --> 00:20:59,720 লু সব ধন্যবাদ এবং তাঁর চমৎকার কিউ. 450 00:20:59,720 --> 00:21:01,220 বক্তা 1: ঠিক আছে, এটি আরাধ্য. 451 00:21:01,220 --> 00:21:05,920 452 00:21:05,920 --> 00:21:10,080 সত্যিই তাই যাওয়া হয়েছে তা এখন ফণা নীচে? 453 00:21:10,080 --> 00:21:12,370 আমরা পয়েন্টার আছে, আমরা malloc আছে, 454 00:21:12,370 --> 00:21:15,680 আমরা তৈরি করার ক্ষমতা আছে নিজেদের জন্য মেমরি অংশ 455 00:21:15,680 --> 00:21:16,344 পরিবর্তনশীল. 456 00:21:16,344 --> 00:21:18,510 সুতরাং এই একটি ছবি আমরা হয় শুধু অন্যান্য দিন glimpsed. 457 00:21:18,510 --> 00:21:21,180 আমরা সত্যিই বাস করা হয়নি এটা, কিন্তু এই ছবি 458 00:21:21,180 --> 00:21:24,180 নীচে আছে যাওয়া হয়েছে এখন সপ্তাহের জন্য হুড. 459 00:21:24,180 --> 00:21:27,050 এবং সে জন্য এই প্রতিনিধিত্ব আমরা টানা করেছি যে একটি আয়তক্ষেত্র, 460 00:21:27,050 --> 00:21:28,180 আপনার কম্পিউটার এর মেমরি. 461 00:21:28,180 --> 00:21:31,850 এবং হয়ত আপনার কম্পিউটার, বা CS50 আইডি, মেমরি বা র্যাম একটি গিগাবাইট আছে 462 00:21:31,850 --> 00:21:33,050 অথবা দুই গিগাবাইট বা চার. 463 00:21:33,050 --> 00:21:34,450 এটা কোন ব্যাপার না. 464 00:21:34,450 --> 00:21:37,240 আপনার অপারেটিং সিস্টেম উইন্ডোজ বা ম্যাক OS বা লিনাক্স, 465 00:21:37,240 --> 00:21:41,120 মূলত আপনার প্রোগ্রামকে এটা এক্সেস আছে মনে 466 00:21:41,120 --> 00:21:42,982 সম্পূর্ণতা যাও আপনার কম্পিউটার এর মেমরি, 467 00:21:42,982 --> 00:21:45,440 এমনকি আপনি চলমান হতে পারে, যদিও একযোগে একাধিক প্রোগ্রাম. 468 00:21:45,440 --> 00:21:46,990 তাই বাস্তবে, যে সত্যিই কাজ করে না. 469 00:21:46,990 --> 00:21:49,448 কিন্তু এটা মায়া ধরনের আপনার প্রোগ্রামের সব দেওয়া. 470 00:21:49,448 --> 00:21:53,110 তাই আপনি যদি এই RAM- র দুটি যোগাড় ছিল কম্পিউটার এটা মনে হতে পারে কিভাবে হয়. 471 00:21:53,110 --> 00:21:57,110 >> এখন, কাকতালীয়ভাবে এই এক কিছু স্মৃতি এই খন্ডের এক, 472 00:21:57,110 --> 00:21:58,350 একটি স্ট্যাক বলা হয়. 473 00:21:58,350 --> 00:22:01,680 এবং প্রকৃতপক্ষে যে কোনো সময় এ পর্যন্ত লেখা কোড 474 00:22:01,680 --> 00:22:05,900 আপনি বলা আছে যে একজন উদাহরণস্বরূপ প্রধান জন্য ফাংশন. 475 00:22:05,900 --> 00:22:08,410 কোন সময় আমি করেছি যে প্রত্যাহার টানা কম্পিউটার এর মেমরি, 476 00:22:08,410 --> 00:22:10,640 আমি সবসময় ধরণের আঁকা এখানে একটি আয়তাকার অর্ধেক 477 00:22:10,640 --> 00:22:12,520 এবং কথা বলা মাথা ঘামান না উপরে কি সম্পর্কে. 478 00:22:12,520 --> 00:22:15,980 প্রধান ডাকা হয়, যখন আমি দাবি কারণ আপনি মেমরি এই কাঠের ছিলকা পেতে যে 479 00:22:15,980 --> 00:22:16,970 যে এখানে নিচে চলে যায়. 480 00:22:16,970 --> 00:22:20,650 প্রধান যদি একটি ফাংশন বলা swap 'র মত, ভাল অদল-বদলের কাজটি এখানে যায়. 481 00:22:20,650 --> 00:22:23,720 আর তা যে, দেখা যাচ্ছে যেখানে এটা শেষ পর্যন্ত হচ্ছে. 482 00:22:23,720 --> 00:22:26,277 একটি স্ট্যাক কিছু বলা উপর আপনার কম্পিউটার এর মেমরি ভিতরে. 483 00:22:26,277 --> 00:22:28,360 এখন দিনের শেষে, এই মাত্র ঠিকানাগুলি হয়. 484 00:22:28,360 --> 00:22:30,680 এটা, বাইট শূন্য মত বাইট এক বাইট 2 বিলিয়ন. 485 00:22:30,680 --> 00:22:33,130 কিন্তু আপনি এটি সম্পর্কে চিন্তা এই আয়তক্ষেত্রাকার বস্তুর হিসাবে, 486 00:22:33,130 --> 00:22:35,130 সব আমরা ভাষার করছেন সময় আমরা একটি ফাংশন কল 487 00:22:35,130 --> 00:22:37,180 মেমরি নতুন ছে layering. 488 00:22:37,180 --> 00:22:41,700 আমরা একটি ফালি যে ফাংশন প্রদান করছি নিজস্ব মেমরি সঙ্গে কাজ করতে. 489 00:22:41,700 --> 00:22:44,490 >> এবং এই গুরুত্বপূর্ণ যে এখন প্রত্যাহার. 490 00:22:44,490 --> 00:22:46,400 আমরা আছে না কারণ যদি swap 'র মত কিছু 491 00:22:46,400 --> 00:22:51,610 A এবং B এবং মত ও দুটি স্থানীয় ভেরিয়েবল আমরা এক ও দুই থেকে সেই মান পরিবর্তন 492 00:22:51,610 --> 00:22:55,130 দুই ও এক পুনরাহ্বান অদল-বদল ফেরৎ যখন যে, 493 00:22:55,130 --> 00:22:58,330 এটা এই ছে হিসাবে যদিও এর মেমরি ধ্বংস হয়ে গিয়েছে. 494 00:22:58,330 --> 00:23:00,080 বাস্তবে, এটা এখনও সেখানে forensically. 495 00:23:00,080 --> 00:23:01,940 আর কিছু আসলে এখনও আছে. 496 00:23:01,940 --> 00:23:05,410 কিন্তু ধারণার, এটা যেমন এর যদিও এটি সম্পূর্ণরূপে চলে গেছে. 497 00:23:05,410 --> 00:23:10,910 তাই প্রধান কাজ কোন না জানি যে, যে swap 'র ফাংশন মধ্যে সম্পন্ন করা হয় 498 00:23:10,910 --> 00:23:14,890 এটা আসলে যারা এর মধ্যে পাস তবে পয়েন্টার দ্বারা বা রেফারেন্স দ্বারা আর্গুমেন্ট. 499 00:23:14,890 --> 00:23:17,790 এখন, মৌলিক সমাধান swap 'র সঙ্গে যে সমস্যা 500 00:23:17,790 --> 00:23:19,970 অঙ্ক দ্বারা অনেক কিছু ক্ষণস্থায়ী হয়. 501 00:23:19,970 --> 00:23:23,250 কিন্তু এটা খুব, কি, দেখা যাচ্ছে যে অংশ উপরে যাওয়া হয়েছে 502 00:23:23,250 --> 00:23:26,330 আয়তাকার সব এই সময় এখনো আরো মেমরি আছে আছে. 503 00:23:26,330 --> 00:23:28,790 আর যখন আপনি পরিবর্তনশীল মেমরি বরাদ্দ, 504 00:23:28,790 --> 00:23:32,020 এটা কি GetString, ভেতরে কিনা যা আমরা CS50 মধ্যে আপনার জন্য কাজ করছি 505 00:23:32,020 --> 00:23:34,710 গ্রন্থাগার, অথবা আপনাকে বলছি যদি malloc কল এবং জিজ্ঞাসা 506 00:23:34,710 --> 00:23:37,950 একটি খণ্ড জন্য অপারেটিং সিস্টেম মেমরি, এটি স্ট্যাক থেকে আসে না. 507 00:23:37,950 --> 00:23:40,960 অন্য এক জায়গায় থেকে আসে আপনার কম্পিউটার এর মেমরি 508 00:23:40,960 --> 00:23:42,220 যে গাদা বলা হচ্ছে. 509 00:23:42,220 --> 00:23:43,430 আর যে কোন আলাদা না. 510 00:23:43,430 --> 00:23:44,285 এটা একই RAM- র. 511 00:23:44,285 --> 00:23:45,160 এটা একই মেমরি. 512 00:23:45,160 --> 00:23:49,080 এটা আপ যে RAM- র সেখানে পরিবর্তে নিচে এখানে. 513 00:23:49,080 --> 00:23:50,750 >> আর তাই যে কি মানে? 514 00:23:50,750 --> 00:23:53,650 ওয়েল, আপনার কম্পিউটার হয়েছে থাকে মেমরি একটি নির্দিষ্ট পরিমাণ 515 00:23:53,650 --> 00:23:57,450 এবং স্ট্যাকের তাই, উদ্ভিন্ন হয় কথা বলতে, এবং গাদা, অনুযায়ী 516 00:23:57,450 --> 00:23:59,349 এই তীর, নিচে ক্রমবর্ধমান হয়. 517 00:23:59,349 --> 00:24:01,140 অন্য কথায়, যে সময় আপনি malloc কল, 518 00:24:01,140 --> 00:24:03,430 আপনি একটি ফালি দেওয়া হচ্ছে মেমরি উপরে থেকে, 519 00:24:03,430 --> 00:24:06,630 একটু পরে, নিম্ন তারপর হয়তো একটু কম, আপনি malloc কল প্রতিটি সময়, 520 00:24:06,630 --> 00:24:10,100 গাদা, এটা ব্যবহার আছে, ধরনের ক্রমবর্ধমান হয়, 521 00:24:10,100 --> 00:24:11,950 কি কাছাকাছি এবং কাছাকাছি ক্রমবর্ধমান? 522 00:24:11,950 --> 00:24:13,382 স্ট্যাক. 523 00:24:13,382 --> 00:24:14,840 সুতরাং এই একটি ভাল ধারণা ভালো মনে হচ্ছে না? 524 00:24:14,840 --> 00:24:18,420 525 00:24:18,420 --> 00:24:22,140 এটা সত্যিই পরিষ্কার না যেখানে আমি বলতে চাচ্ছি, আপনি কি কি আপনি শুধুমাত্র তাহলে কি করতে পারেন 526 00:24:22,140 --> 00:24:23,910 মেমরি একটি নির্দিষ্ট পরিমাণ আছে. 527 00:24:23,910 --> 00:24:25,200 কিন্তু এই নিশ্চয় খারাপ. 528 00:24:25,200 --> 00:24:27,920 যারা দুই তীর একটি হয় পরস্পরের প্রতি অবশ্যই বিপর্যস্ত. 529 00:24:27,920 --> 00:24:31,930 >> আর তা যে খারাপ লোক, যারা ভাবেন সক্রিয় আউট , প্রোগ্রামিং সঙ্গে বিশেষভাবে ভালো হয় 530 00:24:31,930 --> 00:24:36,140 এবং কম্পিউটারের মধ্যে হ্যাক করার চেষ্টা করুন, এই বাস্তবতা শোষণ করা যাবে. 531 00:24:36,140 --> 00:24:38,290 বস্তুত, এর বিবেচনা করা যাক সামান্য স্নিপেট. 532 00:24:38,290 --> 00:24:41,350 সুতরাং এই যে আপনি পড়তে পারেন একটি উদাহরণ সম্পর্কে উইকিপিডিয়ার আরো বিস্তারিতভাবে. 533 00:24:41,350 --> 00:24:43,100 আমরা এ নির্দেশ করব নিবন্ধটি যদি জানতে. 534 00:24:43,100 --> 00:24:45,650 কিন্তু আক্রমনের সাধারণত আছে বাফার ওভারফ্লো হিসাবে পরিচিত যে 535 00:24:45,650 --> 00:24:49,570 মানুষের যতদিন অস্তিত্ত্বকে করেনি নিপূণভাবে ক্ষমতা ছিল 536 00:24:49,570 --> 00:24:53,120 বিশেষ করে সি কম্পিউটার এর মেমরি, তাই এটি একটি খুব নির্বিচারে প্রোগ্রাম, 537 00:24:53,120 --> 00:24:55,130 কিন্তু এর নিচ থেকে এটা পড়া যাক. 538 00:24:55,130 --> 00:24:57,650 Argc গৃহস্থালি তারকা argv মধ্যে প্রধান. 539 00:24:57,650 --> 00:24:59,830 তাই এটি লাগে একটি প্রোগ্রাম কমান্ড লাইন আর্গুমেন্ট. 540 00:24:59,830 --> 00:25:03,620 এবং সব প্রধান দৃশ্যত কল করে একটি ফাংশন, সরলতা জন্য F কল. 541 00:25:03,620 --> 00:25:04,610 আর এটা কি পাস? 542 00:25:04,610 --> 00:25:05,490 এক argv. 543 00:25:05,490 --> 00:25:09,320 সুতরাং এটা এফ মধ্যে পাস যাই হোক না কেন শব্দ ব্যবহারকারী টাইপ করা যে হয় 544 00:25:09,320 --> 00:25:11,500 পরে প্রম্পটে প্রোগ্রাম এর নাম এ সব. 545 00:25:11,500 --> 00:25:15,730 এত সিজার বা Vigenere, মত যা আপনি argv সাথে করছেন প্রত্যাহার করা হতে পারে. 546 00:25:15,730 --> 00:25:16,680 >> তাই ফল কি? 547 00:25:16,680 --> 00:25:19,760 এফ একটি স্ট্রিং লাগে তার একমাত্র যুক্তি হিসাবে, 548 00:25:19,760 --> 00:25:22,100 ওরফে একটি গৃহস্থালি তারকা, একই জিনিস, পংক্তিরূপে উল্লিখিত হয়. 549 00:25:22,100 --> 00:25:24,920 এবং এটা ইচ্ছামত বলা হচ্ছে এই উদাহরণে বার. 550 00:25:24,920 --> 00:25:27,710 এবং তারপর গৃহস্থালির সি 12, ঠিক সাধারণ লোক এর ভাষায় বলতে গেলে, 551 00:25:27,710 --> 00:25:31,750 আমাদের জন্য করছেন গৃহস্থালি গ বন্ধনী 12 কি? 552 00:25:31,750 --> 00:25:33,440 কি এটা? 553 00:25:33,440 --> 00:25:36,490 বিশেষভাবে, মেমরি বণ্টন 12 অক্ষর জন্য 12 বাইট. 554 00:25:36,490 --> 00:25:36,990 ঠিক. 555 00:25:36,990 --> 00:25:40,000 এবং তারপর শেষ লাইন, এবং আলোড়ন কপি, আপনি সম্ভবত দেখা যায় না করেছি. 556 00:25:40,000 --> 00:25:43,360 এটি একটি স্ট্রিং অনুলিপি জীবনে যার উদ্দেশ্য ফাংশন 557 00:25:43,360 --> 00:25:48,160 তার দ্বিতীয় যুক্তি কপি করা তার প্রথম আর্গুমেন্ট মধ্যে, 558 00:25:48,160 --> 00:25:51,190 কিন্তু শুধুমাত্র একটি আপ বাইট নির্দিষ্ট সংখ্যক. 559 00:25:51,190 --> 00:25:53,860 তাই তৃতীয় যুক্তি, বলেছেন আপনি কত বাইট কপি করা উচিত? 560 00:25:53,860 --> 00:25:56,720 বার দৈর্ঘ্য, যাই হোক না কেন টাইপ ব্যবহারকারী. 561 00:25:56,720 --> 00:25:59,320 এর এবং বিষয়বস্তু হয়, যে স্ট্রিং বার 562 00:25:59,320 --> 00:26:02,330 মেমরিতে কপি সি এ এ তীক্ষ্ন 563 00:26:02,330 --> 00:26:04,060 >> সুতরাং এই ধরনের মূঢ় মনে, এবং তা হয়ে যায়. 564 00:26:04,060 --> 00:26:06,300 এটি একটি কল্পিত উদাহরণ, কিন্তু এটা প্রতিনিধি 565 00:26:06,300 --> 00:26:10,100 আক্রমণ ভেক্টর একটি বর্গ, একটি প্রোগ্রাম আক্রমণ একটি উপায়. 566 00:26:10,100 --> 00:26:15,050 সমস্ত জরিমানা এবং ব্যবহারকারী যদি ভাল হয় 11 অক্ষর যে একটি শব্দ ধরনের 567 00:26:15,050 --> 00:26:18,040 কম, প্লাস ব্যাকস্ল্যাশ শূন্য বা. 568 00:26:18,040 --> 00:26:22,830 কি আর ব্যবহারকারী ধরনের আরো যদি 11 বা 12 বা 20 বা 50 অক্ষর? 569 00:26:22,830 --> 00:26:25,090 কাজ করতে যাচ্ছেন এই প্রোগ্রাম কি? 570 00:26:25,090 --> 00:26:29,360 সম্ভাব্য seg দোষ. এটা যাচ্ছে অন্ধভাবে আপ বারে সবকিছু কপি করার 571 00:26:29,360 --> 00:26:31,750 যা তার দৈর্ঘ্য, এর আক্ষরিক বারে সবকিছু, 572 00:26:31,750 --> 00:26:36,307 ঠিকানা মধ্যে সি কিন্তু সি এ তীক্ষ্ন শুধুমাত্র যাও preemptively 12 বাইট হিসাবে দেওয়া হয়েছে. 573 00:26:36,307 --> 00:26:37,640 কিন্তু কোন অতিরিক্ত বার করো. 574 00:26:37,640 --> 00:26:38,700 শর্ত যদি কোন নেই. 575 00:26:38,700 --> 00:26:40,580 এখানে চেক কোন ত্রুটি আছে. 576 00:26:40,580 --> 00:26:43,270 >> আর তাই এই প্রোগ্রাম কি কাজ করতে যাচ্ছেন অন্ধভাবে হয় 577 00:26:43,270 --> 00:26:45,750 অন্য এক জিনিস কপি. 578 00:26:45,750 --> 00:26:47,880 আর তাই আমরা এই আঁকা তাহলে একটি ছবি হিসাবে, এখানে 579 00:26:47,880 --> 00:26:49,860 মেমরি স্পেস শুধু একটি কাঠের ছিলকা. 580 00:26:49,860 --> 00:26:53,470 সুতরাং আমরা নিচের দিকে লক্ষ্য স্থানীয় পরিবর্তনশীল বার আছে. 581 00:26:53,470 --> 00:26:57,330 স্টোরে যাচ্ছে যে পয়েন্টার তাই যে যে স্থানীয় যুক্তি বরং 582 00:26:57,330 --> 00:26:58,672 স্ট্রিং বার সংরক্ষণ করে যাচ্ছে. 583 00:26:58,672 --> 00:27:00,380 এবং তারপর মাত্র লক্ষ্য এটা উপরে একটি স্ট্যাকের মধ্যে, 584 00:27:00,380 --> 00:27:02,505 কারণ আপনার জিজ্ঞাসা প্রতি সময় স্ট্যাক মেমরি জন্য, 585 00:27:02,505 --> 00:27:04,310 এটি একটি সামান্য বিট যায় pictorially এটা উপরে, 586 00:27:04,310 --> 00:27:06,270 আমরা এখন পর্যন্ত 12 বাইট পেয়েছেন যে নোটিশ. 587 00:27:06,270 --> 00:27:10,690 উপরের বাম এক সি বন্ধনী শূন্য এবং হয় নীচের অংশে ডানদিকে এক সি বন্ধনী 11. 588 00:27:10,690 --> 00:27:12,870 শুধু কিভাবে কম্পিউটারের কী এটা খুঁজে রাখা যাচ্ছে. 589 00:27:12,870 --> 00:27:18,300 সুতরাং শুধুমাত্র intuitively বার আরও আছে যদি সহ মোট 12 টি অক্ষর, চেয়ে 590 00:27:18,300 --> 00:27:25,790 যেখানে ব্যাকস্ল্যাশ শূন্য, 12 বা সি বন্ধনী 12 যেতে যাচ্ছে? 591 00:27:25,790 --> 00:27:28,440 বরং বা যেখানে 12th হয় অক্ষর বা 13 অক্ষর, 592 00:27:28,440 --> 00:27:30,900 যাচ্ছে শততম চরিত্র ছবি আপ করা শেষ করতে? 593 00:27:30,900 --> 00:27:33,400 উপরে বা নীচে? 594 00:27:33,400 --> 00:27:36,300 >> রাইট, যদিও কারণ স্ট্যাকের নিজেই, ঊর্ধ্বাভিমুখী বৃদ্ধি 595 00:27:36,300 --> 00:27:39,590 আপনি কাপড় রেখেছি একবার এটা নকশা কারণে, 596 00:27:39,590 --> 00:27:41,294 উপর থেকে নীচ পর্যন্ত মেমরি রাখে. 597 00:27:41,294 --> 00:27:44,460 আপনি আরো বেশী 12 বাইট পেয়েছেন তাই, আপনি বার মুছে ফেলা শুরু করতে যাচ্ছেন. 598 00:27:44,460 --> 00:27:47,280 এখন যে একটি বাগ, কিন্তু এটা না সত্যিই একটি বড় চুক্তি. 599 00:27:47,280 --> 00:27:51,130 নেই, কারণ কিন্তু এটি একটি বড় চুক্তি, হয় মেমরি যাওয়া আরো স্টাফ. 600 00:27:51,130 --> 00:27:53,074 তাই এখানে কিভাবে আমরা প্রতাপ এর পরিষ্কার করা, হ্যালো করা. 601 00:27:53,074 --> 00:27:54,490 আমি প্রম্পটে হ্যালো টাইপ করা হলে. 602 00:27:54,490 --> 00:27:59,330 এইচ-ই-এল-এল-হে ব্যাকস্ল্যাশ শূন্য, মধ্যে শেষ পর্যন্ত যারা 12 বাইট, এবং আমরা সুপার নিরাপদ আছেন. 603 00:27:59,330 --> 00:28:00,330 সবকিছু ঠিক আছে. 604 00:28:00,330 --> 00:28:03,020 কিন্তু আমি কিছু টাইপ করুন আর, সম্ভাব্য এটা 605 00:28:03,020 --> 00:28:05,860 বার স্পেস মধ্যে হামাগুড়ি যাচ্ছে. 606 00:28:05,860 --> 00:28:08,405 কিন্তু এখনো খারাপ, এটি সক্রিয় সব এই সময় আউট, 607 00:28:08,405 --> 00:28:11,530 আমরা স্বপ্ন করেছি, এমনকি যদিও এটি স্ট্যাক অন্যান্য উপাদান ব্যবহার করা হয়. 608 00:28:11,530 --> 00:28:13,560 এটা শুধু স্থানীয় ভেরিয়েবল না. 609 00:28:13,560 --> 00:28:15,100 >> সি একটি অত্যন্ত নিম্ন স্তরের ভাষা. 610 00:28:15,100 --> 00:28:17,810 এবং এটি ধরণের গোপনে এছাড়াও স্ট্যাক ব্যবহার 611 00:28:17,810 --> 00:28:21,260 যখন মনে রাখবেন একটি ফাংশন, তা বলা হয় 612 00:28:21,260 --> 00:28:26,040 অঙ্ক, আগের ফাংশন হয় তাই এটি ফিরে যে ফাংশন ঝাঁপ পারেন. 613 00:28:26,040 --> 00:28:29,980 তাই প্রধান কল মধ্যে, অদলবদল যখন জিনিষ স্ট্যাকের মধ্যে push করা 614 00:28:29,980 --> 00:28:34,380 শুধু, স্থানীয় ভেরিয়েবল বিনিময়সমূহ না বা তার আর্গুমেন্ট, গোপনে ধাক্কা 615 00:28:34,380 --> 00:28:37,510 স্ট্যাকের মধ্যে প্রতিনিধিত্ব হিসেবে এখানে লাল ফালি করে, 616 00:28:37,510 --> 00:28:40,520 মূল ঠিকানা শারীরিকভাবে হয় আপনার কম্পিউটার এর মেমরি, 617 00:28:40,520 --> 00:28:44,180 যাতে অদল-বদলের কাজটি করা সম্ভব হলে, কম্পিউটার আমি প্রধান ফিরে যেতে হবে জানে 618 00:28:44,180 --> 00:28:46,760 এবং প্রধান ফাংশন নির্বাহ শেষ. 619 00:28:46,760 --> 00:28:51,960 তাই এই, এখন বিপজ্জনক কারণ যদি হ্যালো চেয়ে ভাল আরো ব্যবহারকারী ধরনের, 620 00:28:51,960 --> 00:28:57,030 ব্যবহারকারীর ইনপুট clobbers যে যেমন অথবা, যে লাল অধ্যায় মুছে ফেলা হয় 621 00:28:57,030 --> 00:28:59,820 কথাটি যদি কম্পিউটার এর অন্ধভাবে অনুমান করা যাচ্ছে 622 00:28:59,820 --> 00:29:03,830 যে লাল ছে বাইট হয় এটি ফেরত পাঠাবেন যা করার ঠিকানা, 623 00:29:03,830 --> 00:29:09,020 বিপক্ষ কি তাহলে যথেষ্ট স্মার্ট বা বাইটের একটি ক্রম করা যথেষ্ট ভাগ্যবান 624 00:29:09,020 --> 00:29:13,450 সেখানে একটি ঠিকানা মত দেখায় যে, কিন্তু এটি কোড এর ঠিকানা 625 00:29:13,450 --> 00:29:18,730 সে কম্পিউটার চায় পরিবর্তে প্রধান চালানো? 626 00:29:18,730 --> 00:29:21,670 >> অন্য কথায়, কি তাহলে ব্যবহারকারী প্রম্পটে টাইপ করা হয় 627 00:29:21,670 --> 00:29:23,850 শুধু কিছু নয় হ্যালো, নির্দোষ মত 628 00:29:23,850 --> 00:29:28,210 কিন্তু এটা সমতুল্য যে কোড আসলে সব এই ব্যবহারকারীর ফাইল মুছে দিতে পারবো? 629 00:29:28,210 --> 00:29:30,060 অথবা আমাকে তাদের পাসওয়ার্ড ইমেইল? 630 00:29:30,060 --> 00:29:31,940 অথবা লগ ইন শুরু তাদের কি-স্ট্রোক, ডান? 631 00:29:31,940 --> 00:29:34,920 একটা উপায় আছে, এর আজ চুক্তির শর্ত দেওয়া তারা হ্যালো না শুধু টাইপ করতে পারে যে 632 00:29:34,920 --> 00:29:36,711 বিশ্বের বা তাদের নাম, তারা মূলত পারা 633 00:29:36,711 --> 00:29:39,570 কোড, শূন্য পাস এবং বেশী, যে কম্পিউটার 634 00:29:39,570 --> 00:29:43,450 কোড এবং একটি ঠিকানা উভয় জন্য ভুল. 635 00:29:43,450 --> 00:29:48,950 যদ্যপি তাই কিছুটা বলিবেন, তাহলে যথেষ্ট adversarial কোড ব্যবহারকারী ধরনের 636 00:29:48,950 --> 00:29:52,330 আমরা এখানে যেমন সাধারণের বোধগম্য হবে যে উ: একটি আক্রমণ বা প্রতিপক্ষ নয়. 637 00:29:52,330 --> 00:29:53,140 তাই শুধু খারাপ জিনিস. 638 00:29:53,140 --> 00:29:55,306 আমরা যত্নশীল না সংখ্যা বা শূন্য বা বেশী 639 00:29:55,306 --> 00:29:59,470 আজ, আপনি যেমন যে শেষ পর্যন্ত যে লাল অধ্যায় মুছে, 640 00:29:59,470 --> 00:30:01,580 বাইটের যে ক্রম লক্ষ্য. 641 00:30:01,580 --> 00:30:05,020 হে 835 সি শূন্য আট শূন্য. 642 00:30:05,020 --> 00:30:08,960 আর এখন এখানে উইকিপিডিয়ার নিবন্ধ হিসাবে আসলে আপনি এখন শুরু হলে, প্রস্তাব করা হয়েছে 643 00:30:08,960 --> 00:30:12,460 আপনার কম্পিউটার এর মধ্যে বাইট লেবেল মেমরি, উইকিপিডিয়া নিবন্ধ কি 644 00:30:12,460 --> 00:30:19,060 উপস্থাপক হয়, যে কি অঙ্ক যদি যে উপরের বাম বাইট 80 সি 0 3508 হয়. 645 00:30:19,060 --> 00:30:22,200 >> অন্য কথায়, খারাপ লোক হয় তাহলে তার কোড সঙ্গে যথেষ্ট স্মার্ট 646 00:30:22,200 --> 00:30:26,650 আসলে এখানে একটি সংখ্যা লাগাতে যে কোড ঠিকানায় অনুরূপ 647 00:30:26,650 --> 00:30:29,180 সে ইনজেকশনের কম্পিউটারের মধ্যে, আপনি 648 00:30:29,180 --> 00:30:31,050 কম্পিউটার রত পারেন কিছু করছেন মধ্যে. 649 00:30:31,050 --> 00:30:34,140 , ফাইল মুছে ইমেল কিছু আপনার ট্রাফিক আঘ্রাণ 650 00:30:34,140 --> 00:30:36,710 আক্ষরিক কিছু হতে পারে কম্পিউটারের মধ্যে ইনজেকশনের. 651 00:30:36,710 --> 00:30:39,220 আর তাই একটি বাফার ওভারফ্লো তার অন্তঃস্থলে আক্রমণ 652 00:30:39,220 --> 00:30:43,530 শুধু একটি স্টুপিড হয় একটি অ্যারের অগ্রাহ্য করে 653 00:30:43,530 --> 00:30:45,840 তার গণ্ডি চেক আছে কি না. 654 00:30:45,840 --> 00:30:48,850 এবং এই সুপার বিপজ্জনক কি এবং একই সাথে অতি শক্তিশালী 655 00:30:48,850 --> 00:30:52,560 সি আমরা প্রকৃতপক্ষে আছে না যে স্মৃতিতে যে কোন জায়গা থেকে এক্সেস. 656 00:30:52,560 --> 00:30:55,320 এটা আমাদের উপর নির্ভর করে, প্রোগ্রামার, যারা মূল কোড লিখুন 657 00:30:55,320 --> 00:30:59,330 কোনো অভিশাপ দৈর্ঘ্য বার আমরা সাধিত করছি যে অ্যারে. 658 00:30:59,330 --> 00:31:00,750 তাই পরিষ্কার করা, ফিক্স কি? 659 00:31:00,750 --> 00:31:03,190 আমরা এই ফিরে গুটানো কোড, আমি না থাকা উচিত ঠিক 660 00:31:03,190 --> 00:31:08,000 বার দৈর্ঘ্য পরিবর্তন, তা অন্য আমি চেক করা উচিত? 661 00:31:08,000 --> 00:31:10,620 আমি আর কী করতে কাজ করা উচিত সম্পূর্ণরূপে এই আক্রমণ প্রতিরোধ? 662 00:31:10,620 --> 00:31:14,110 আমি অন্ধভাবে বলতে চাই না আপনি হিসাবে অনেক বাইট কপি উচিত যে 663 00:31:14,110 --> 00:31:16,140 হিসাবে বার দৈর্ঘ্য হয়. 664 00:31:16,140 --> 00:31:18,910 আমি যেমন, কপি বলতে চাই হিসাবে অনেক বাইট বারে হয় 665 00:31:18,910 --> 00:31:24,090 বরাদ্দ আপ মেমরি, বা সর্বাধিক 12. 666 00:31:24,090 --> 00:31:27,450 তাই আমি শর্ত যদি কিছু প্রয়োজন যে বার দৈর্ঘ্য পরীক্ষা আছে, 667 00:31:27,450 --> 00:31:32,800 কিন্তু 12, আমরা শুধু হার্ড কোড অতিক্রম করে সর্বোচ্চ সম্ভব দূরত্ব হিসাবে 12. 668 00:31:32,800 --> 00:31:35,910 অন্যথা তথাকথিত বাফার ওভারফ্লো আক্রমণ ঘটতে পারে. 669 00:31:35,910 --> 00:31:38,451 যারা স্লাইড নীচে, আপনি আরো পড়তে জানতে আগ্রহী হন তাহলে 670 00:31:38,451 --> 00:31:41,200 প্রকৃত মূল নিবন্ধ আপনি দেখে নিতে চাই. 671 00:31:41,200 --> 00:31:44,550 >> কিন্তু এখন, দাম মধ্যে অকার্যকরই এখানে ছিল প্রদত্ত. 672 00:31:44,550 --> 00:31:46,680 সুতরাং যে একটি দ্রুত ছিল এ নিম্ন স্তর বর্ণন কি 673 00:31:46,680 --> 00:31:49,709 সমস্যা যে আমরা এখন দেখা দিতে পারে কম্পিউটার এর মেমরি এক্সেস আছে. 674 00:31:49,709 --> 00:31:51,750 কিন্তু সমস্যা অন্য জায়গায় আমরা ইতিমধ্যে সোমবার পদস্খলিত 675 00:31:51,750 --> 00:31:53,800 শুধু অদক্ষতা ছিল একটি লিঙ্ক তালিকা. 676 00:31:53,800 --> 00:31:56,019 আমরা ফিরে রৈখিক সময় হয়. 677 00:31:56,019 --> 00:31:57,560 আমরা আর একটি সংলগ্ন অ্যারে আছে. 678 00:31:57,560 --> 00:31:58,980 আমরা র্যান্ডম অ্যাক্সেস না থাকে. 679 00:31:58,980 --> 00:32:00,710 আমরা বর্গাকার বন্ধনী নোটেশন ব্যবহার করা যাবে না. 680 00:32:00,710 --> 00:32:04,590 আমরা আক্ষরিক যখন একটি লুপ ব্যবহার করতে হবে এক মত আমি একটি মুহূর্ত আগে লিখেছিলেন. 681 00:32:04,590 --> 00:32:09,740 কিন্তু সোমবার, আমরা যেতে পারে যে দাবি দক্ষতা অন্তর্জগৎ মধ্যে হামাগুড়ি 682 00:32:09,740 --> 00:32:13,040 কিছু যে অর্জন লগারিদমিক হয়তো, বা ভাল এখনো, 683 00:32:13,040 --> 00:32:16,120 যে এমনকি কিছু ধ্রুব সময় তথাকথিত. 684 00:32:16,120 --> 00:32:19,840 তাই আমরা এই নতুন ব্যবহার যে কত না পারেন সরঞ্জাম, এই ঠিকানাগুলি, এই পয়েন্টার, 685 00:32:19,840 --> 00:32:22,210 এবং আমাদের নিজস্ব কিছু থ্রেডিং? 686 00:32:22,210 --> 00:32:23,960 ওয়েল, আমি অনুমান যে এখানে, এই একটি গুচ্ছ 687 00:32:23,960 --> 00:32:27,170 আমরা একটি মধ্যে সংরক্ষণ করতে চান যে সংখ্যার দক্ষতার ডাটা স্ট্রাকচার ও অনুসন্ধান. 688 00:32:27,170 --> 00:32:30,960 আমরা একেবারে সপ্তাহে গুটিয়ে পারেন দুই, একটি অ্যারের মধ্যে এইসব নিক্ষেপ 689 00:32:30,960 --> 00:32:33,150 এবং বাইনারি অনুসন্ধান ব্যবহার তাদের অনুসন্ধান. 690 00:32:33,150 --> 00:32:34,040 ভাগ অতিক্রম করা. 691 00:32:34,040 --> 00:32:37,720 এবং আসলে আপনি লিখেছেন PSET3 বাইনারি অনুসন্ধান, 692 00:32:37,720 --> 00:32:40,100 যেখানে আপনি খুঁজে পেতে প্রোগ্রাম বাস্তবায়ন. 693 00:32:40,100 --> 00:32:40,890 কিন্তু আপনি কি জানেন. 694 00:32:40,890 --> 00:32:45,060 আরো কয়েক ধরনের আছে এই কাজ করার চতুর উপায়. 695 00:32:45,060 --> 00:32:47,390 এটা একটা সামান্য আরো অত্যাধুনিক এবং এটি সম্ভবত 696 00:32:47,390 --> 00:32:50,830 আমাদের কেন বাইনারি দেখতে পারবেন অনুসন্ধান অনেক দ্রুত, তাই হয়. 697 00:32:50,830 --> 00:32:52,980 প্রথমত, এর পরিচয় করিয়ে দেওয়া একটি বৃক্ষ এর ধারণা. 698 00:32:52,980 --> 00:32:54,730 যা এমনকি যদিও বাস্তবতা গাছ ধরনের 699 00:32:54,730 --> 00:32:57,730 কম্পিউটার জগতে, এই মত বাড়া তারা ধরনের নিম্নগামী বাড়া বিজ্ঞান 700 00:32:57,730 --> 00:33:00,830 আপনি যেখানে একটি পরিবার গাছ, মত আপনার নানীরা বা মহান grandparents 701 00:33:00,830 --> 00:33:04,580 বা যে কোন বস্তু উপরের কুলপতি এ ও পরিবারের মা ও কর্ত্রী, মাত্র এক 702 00:33:04,580 --> 00:33:07,930 রুট, নোড, নীচের তথাকথিত তার সন্তানদের যা হয়, 703 00:33:07,930 --> 00:33:11,442 যা নিচে তার সন্তান, অথবা তার বংশধরদের আরো সাধারণভাবে. 704 00:33:11,442 --> 00:33:13,400 আর কেউ বন্ধ ঝুলন্ত পরিবারের নীচে 705 00:33:13,400 --> 00:33:16,070 বৃক্ষ, ছাড়াও পরিবারের কনিষ্ঠ, 706 00:33:16,070 --> 00:33:19,520 এছাড়াও শুধু জেনেরিক হতে পারে বৃক্ষের পাতা বলা. 707 00:33:19,520 --> 00:33:21,800 >> সুতরাং এই মাত্র একটি গুচ্ছ হয় শব্দ এবং সংজ্ঞা 708 00:33:21,800 --> 00:33:25,790 কিছু কম্পিউটার একটি গাছ বলা বিজ্ঞান, একটি পরিবার গাছ মত অনেক. 709 00:33:25,790 --> 00:33:28,770 কিন্তু কল্পনাকারী সমগ্র আদর্শের আছে গাছ, যার মধ্যে 710 00:33:28,770 --> 00:33:30,780 একটি বাইনারি অনুসন্ধান বৃক্ষ বলা হয়. 711 00:33:30,780 --> 00:33:34,380 এবং আপনি পারেন আঁচড়ান ধরনের এই জিনিস সরাইয়া কি. 712 00:33:34,380 --> 00:33:37,180 ওয়েল, এটা কোন অর্থে বাইনারি? 713 00:33:37,180 --> 00:33:41,455 যেখানে বাইনারি এখানে কোথা থেকে এসেছে? 714 00:33:41,455 --> 00:33:41,955 দুঃখিত? 715 00:33:41,955 --> 00:33:45,961 716 00:33:45,961 --> 00:33:47,210 এটা এত একটি হয় বা না. 717 00:33:47,210 --> 00:33:52,000 এটা নোড প্রতিটি কোন হয়েছে আরো দুটির বেশি সন্তান থাকলে, আমরা এখানে দেখতে হিসেবে. 718 00:33:52,000 --> 00:33:54,990 সাধারণ, একটি ট্রি যাও এবং আপনার বাবা এবং grandparents 719 00:33:54,990 --> 00:33:57,640 অনেক বাচ্চাদের থাকতে পারে বা নাতিনাতনির তারা আসলে চান হিসাবে, 720 00:33:57,640 --> 00:34:00,820 এবং তাই উদাহরণস্বরূপ সেখানে আমরা তিন আছে ডানহাতে ওটা নোডের বন্ধ শিশুদের, 721 00:34:00,820 --> 00:34:05,480 কিন্তু একটি বাইনারি ট্রি, একটি নোড আছে সর্বাধিক শূন্য, এক, দুই বা শিশু. 722 00:34:05,480 --> 00:34:08,496 আর যে, একটা চমৎকার সম্পত্তি দুজন লাভের কারণ যদি, 723 00:34:08,496 --> 00:34:10,620 আমরা সক্ষম হতে যাচ্ছেন একটু লগ বেস পেতে দুই 724 00:34:10,620 --> 00:34:11,975 কর্ম এখানে শেষ পর্যন্ত যাওয়া. 725 00:34:11,975 --> 00:34:13,350 সুতরাং আমরা লগারিদমিক কিছু আছে. 726 00:34:13,350 --> 00:34:14,558 কিন্তু একটি মুহূর্ত যে আরো. 727 00:34:14,558 --> 00:34:19,810 অনুসন্ধান বৃক্ষ সংখ্যার মানে হল যে ব্যবস্থা যেমন যে বাম সন্তানের 728 00:34:19,810 --> 00:34:22,429 মূল্য রুট তার চেয়ে অনেক বেশী. 729 00:34:22,429 --> 00:34:26,010 এবং তার ডান সন্তানের হয় রুট চেয়ে বড়. 730 00:34:26,010 --> 00:34:29,290 অন্য কথায়, আপনি কোনো নিতে হলে নোড, এই ছবিতে বৃত্ত, 731 00:34:29,290 --> 00:34:31,840 এবং তার বাম দিকে তাকায় শিশু ও তার ডান সন্তান, 732 00:34:31,840 --> 00:34:34,739 প্রথমত, এর চেয়ে কম হওয়া উচিত দ্বিতীয় তার চেয়ে অনেক বেশী হওয়া উচিত. 733 00:34:34,739 --> 00:34:36,159 সুতরাং বৈধতা 55 বার. 734 00:34:36,159 --> 00:34:37,780 এটা সন্তানের বাম এর 33 হয়. 735 00:34:37,780 --> 00:34:38,620 এর চেয়ে কম. 736 00:34:38,620 --> 00:34:40,929 55, তার অধিকার বাচ্চাকে 77. 737 00:34:40,929 --> 00:34:41,783 এটা তার চেয়ে অনেক বেশী. 738 00:34:41,783 --> 00:34:43,199 এবং যে একটি রিকার্সিভ সংজ্ঞা. 739 00:34:43,199 --> 00:34:46,480 আমরা যারা প্রতি এক পরীক্ষা পারে নোড এবং রাখা হবে একই প্যাটার্ন. 740 00:34:46,480 --> 00:34:49,389 >> সুতরাং একটি চমৎকার কি বাইনারি অনুসন্ধান বৃক্ষ, হয় 741 00:34:49,389 --> 00:34:52,204 যে এক, আমরা তা বাস্তবায়ন করতে পারেন একটি struct সঙ্গে, শুধু ভালো. 742 00:34:52,204 --> 00:34:54,620 আর আমরা নিক্ষেপ করছি যদিও আপনার এ স্ট্রাকচার অনেক, 743 00:34:54,620 --> 00:34:56,560 তারা কিছুটা আছেন স্বজ্ঞাত এখন আশা. 744 00:34:56,560 --> 00:35:00,570 সিনট্যাক্স, এখনও নিশ্চিত করার জন্য গোপনীয় হয় কিন্তু এই একটি নোড বিষয়বস্তু 745 00:35:00,570 --> 00:35:02,786 context-- এবং আমরা রাখতে শব্দ নোড ব্যবহার করে, 746 00:35:02,786 --> 00:35:04,910 এটি একটি আয়তক্ষেত্র কিনা পর্দা বা বৃত্তের উপর, 747 00:35:04,910 --> 00:35:08,970 এটি শুধু কিছু জেনেরিক ধারক এক মত একটি গাছের এই ক্ষেত্রে, এ 748 00:35:08,970 --> 00:35:11,780 আমরা একটি পূর্ণসংখ্যা প্রয়োজন, দেখেছি নোড প্রত্যেকটি 749 00:35:11,780 --> 00:35:15,460 এবং তারপর আমি দুই পয়েন্টার প্রতি নির্দেশ প্রয়োজন বাম শিশু এবং অধিকার সন্তানের, 750 00:35:15,460 --> 00:35:16,590 যথাক্রমে. 751 00:35:16,590 --> 00:35:20,730 সুতরাং এটা কিভাবে আমরা প্রতাপ একটি struct যে বাস্তবায়ন. 752 00:35:20,730 --> 00:35:22,315 এবং কিভাবে আমি কোড তা বাস্তবায়ন হতে পারে? 753 00:35:22,315 --> 00:35:26,730 ওয়েল, এর একটি দ্রুত নিতে দিন এই ক্ষুদ্র উদাহরণ তাকান. 754 00:35:26,730 --> 00:35:29,820 এটা কার্যকরী নয়, কিন্তু আমি করেছি কপি এবং যে কাঠামো আটকানো. 755 00:35:29,820 --> 00:35:33,510 আর যদি একটি বাইনারি জন্য আমার ফাংশন অনুসন্ধান বৃক্ষ, অনুসন্ধান বলা হয় 756 00:35:33,510 --> 00:35:36,980 এবং এই দুটি আর্গুমেন্ট লাগে, একটি পূর্ণসংখ্যা এন এবং একটি পয়েন্টার 757 00:35:36,980 --> 00:35:41,400 গাছ থেকে একটি নোড, তাই একটি পয়েন্টার বা গাছের শিকড় এর একটি পয়েন্টার, 758 00:35:41,400 --> 00:35:43,482 কিভাবে আমি এন অনুসন্ধানের সম্পর্কে যান? 759 00:35:43,482 --> 00:35:45,440 আচ্ছা, প্রথম, আমি নই, কারণ পয়েন্টার সাথে ডিল, 760 00:35:45,440 --> 00:35:46,750 আমি একটি মানসিক সুস্থতা চেক করতে যাচ্ছি. 761 00:35:46,750 --> 00:35:54,279 বৃক্ষ সমান সমান নাল তাহলে, এন হয় এই বৃক্ষ অথবা না এই গাছ? 762 00:35:54,279 --> 00:35:55,070 এটা ঠিক আছে, হতে পারে না? 763 00:35:55,070 --> 00:35:56,870 আমি নাল গত থাকি যদি, সেখানে কিছুই নেই. 764 00:35:56,870 --> 00:35:59,230 আমি বল হিসাবে ভাল শুধু অন্ধভাবে মিথ্যা ফিরে বলে. 765 00:35:59,230 --> 00:36:04,050 আপনি আমাকে কিছুই দিতে হও, আমি অবশ্যই না করতে পারেন কোন সংখ্যা এন এটি অন্য তাই আমি বল 766 00:36:04,050 --> 00:36:04,750 এখন দেখ? 767 00:36:04,750 --> 00:36:12,830 আমি ভাল অন্য এন হয় তাহলে বলতে যাচ্ছি বৃক্ষ নোড যাই হোক না কেন কম 768 00:36:12,830 --> 00:36:16,300 আমি এন মূল্য হস্তান্তর করে থাকেন যে. 769 00:36:16,300 --> 00:36:20,270 অন্য কথায়, সংখ্যা আমি যদি এন, খুঁজছেন, নোড কম হয় 770 00:36:20,270 --> 00:36:21,340 আমি দেখছি যে. 771 00:36:21,340 --> 00:36:23,190 এবং নোড আমি থাকবো গাছ বলা হয় এ, 772 00:36:23,190 --> 00:36:26,370 এবং আগের উদাহরণ থেকে প্রত্যাহার একটি পয়েন্টার মধ্যে মান পেতে, 773 00:36:26,370 --> 00:36:28,310 আমি তীর স্বরলিপি ব্যবহার. 774 00:36:28,310 --> 00:36:35,960 এন বৃক্ষ তীর কম হলে তাই এন, আমি ধারণার বাম যেতে চান. 775 00:36:35,960 --> 00:36:38,590 আমি কিভাবে বাম অনুসন্ধানও এক্সপ্রেস না? 776 00:36:38,590 --> 00:36:41,560 এই যদি, পরিষ্কার করা প্রশ্নে ছবি, 777 00:36:41,560 --> 00:36:44,612 এবং আমি পাশ করে থাকেন আগ যে নিচে যে ইশারা তীর. 778 00:36:44,612 --> 00:36:45,570 যে আমার বৃক্ষ পয়েন্টার. 779 00:36:45,570 --> 00:36:48,060 আমি গাছের শিকড় এ ইশারা করছি. 780 00:36:48,060 --> 00:36:52,100 আর আমি, বলে থাকবো ইচ্ছামত সংখ্যা 44. 781 00:36:52,100 --> 00:36:55,300 তুলনায় 44 কম বা স্পষ্টত 55 তার চেয়ে অনেক বেশী? 782 00:36:55,300 --> 00:36:56,360 তাই এর চেয়ে কম. 783 00:36:56,360 --> 00:36:58,760 আর তাই এই যদি অবস্থা প্রযোজ্য. 784 00:36:58,760 --> 00:37:03,981 তাই ধারণার, আমি কি চাই না আমি 44 খুঁজছি তাহলে পরের অনুসন্ধান? 785 00:37:03,981 --> 00:37:04,480 হ্যা? 786 00:37:04,480 --> 00:37:08,310 787 00:37:08,310 --> 00:37:11,100 >> ঠিক, আমি চাই বাম সন্তানের অনুসন্ধান, 788 00:37:11,100 --> 00:37:12,789 বা এই ছবি বাম সাব-ট্রি. 789 00:37:12,789 --> 00:37:14,830 এবং সত্য, আমাকে যেতে দাও নিচে এখানে ছবি 790 00:37:14,830 --> 00:37:17,770 মাত্র কয়েক মিনিটের জন্য, যেহেতু আমি এই আউট স্ক্র্যাচ পারবেন না. 791 00:37:17,770 --> 00:37:21,150 আমি 55 এ এখানে শুরু, এবং যদি আমি জানি যে মূল্য 44 792 00:37:21,150 --> 00:37:23,180 করার জন্য আমি থাকবো বাম, এটা ধরনের 793 00:37:23,180 --> 00:37:26,010 এর মধ্যে ফোন বই বিচ্ছিন্নকরণ মত অর্ধেক বা অর্ধেক গাছ বিচ্ছিন্নকরণ. 794 00:37:26,010 --> 00:37:29,660 আমি আর যত্নের আছে বৃক্ষ এই সমগ্র অর্ধেক. 795 00:37:29,660 --> 00:37:33,270 এবং এখনো অদ্ভুতভাবে শর্তাবলী কাঠামো, এখানে যে ধরে এই জিনিস 796 00:37:33,270 --> 00:37:36,682 33 দিয়ে শুরু হয় নিজেই যে একটি বাইনারি অনুসন্ধান বৃক্ষ. 797 00:37:36,682 --> 00:37:39,890 আমি কারণ আগে শব্দ রিকার্সিভ বলেন প্রকৃতপক্ষে এটি একটি ডাটা স্ট্রাকচার যে 798 00:37:39,890 --> 00:37:41,707 সংজ্ঞা দ্বারা রিকার্সিভ হয়. 799 00:37:41,707 --> 00:37:44,540 আপনি কি এই যে একটি বৃক্ষ থাকতে পারে বড়, কিন্তু তার সন্তানদের প্রতি এক 800 00:37:44,540 --> 00:37:46,870 ছোট অল্পমাত্র একটি বৃক্ষ প্রতিনিধিত্ব করে. 801 00:37:46,870 --> 00:37:50,910 এর পরিবর্তে এটি এর দাদু হচ্ছে বা নানী, এখন এটি শুধু মায়ের 802 00:37:50,910 --> 00:37:54,300 or-- আমি মায়ের না কথাই পারবেন না অথবা বাবা, যে অদ্ভুত হবে. 803 00:37:54,300 --> 00:37:59,000 পরিবর্তে দুই শিশু ভাই এবং সহোদর মত হবে. 804 00:37:59,000 --> 00:38:01,120 পরিবারের গাছ একটি নতুন প্রজন্মের. 805 00:38:01,120 --> 00:38:02,900 কিন্তু গঠনের এটা একই ধারণা. 806 00:38:02,900 --> 00:38:06,790 এবং এটা আমি একটি ফাংশন আছে দেখা যাচ্ছে যা দিয়ে আমি একটি বাইনারি অনুসন্ধান অনুসন্ধান করতে পারেন 807 00:38:06,790 --> 00:38:07,290 বৃক্ষ. 808 00:38:07,290 --> 00:38:08,680 এটা অনুসন্ধান বলা হয়. 809 00:38:08,680 --> 00:38:17,870 আমি বৃক্ষ তীর বাম n জন্য অনুসন্ধান এন চেয়ে বেশী অন্যথায় যদি 810 00:38:17,870 --> 00:38:18,870 যে আমি বর্তমানে আছি. 811 00:38:18,870 --> 00:38:20,800 একটি মুহূর্ত আগে গল্পের 55. 812 00:38:20,800 --> 00:38:23,780 আমি নামক একটি ফাংশন আছে অনুসন্ধান যে আমি ঠিক করতে পারেন 813 00:38:23,780 --> 00:38:29,660 এন এই পাস এবং পৌনঃপুনিকভাবে অনুসন্ধান সাব-ট্রি ও ঠিক ফিরে 814 00:38:29,660 --> 00:38:30,620 যাই হোক না কেন যে উত্তরটি. 815 00:38:30,620 --> 00:38:33,530 অন্যথায় আমি এখানে কিছু চূড়ান্ত বেস কেস পেয়েছেন. 816 00:38:33,530 --> 00:38:35,310 >> চূড়ান্ত ক্ষেত্রে কি? 817 00:38:35,310 --> 00:38:36,570 বৃক্ষ হয় নাল. 818 00:38:36,570 --> 00:38:39,980 আমি হয় খুঁজছি মান যে বেশী তা কম বা তার অধিক 819 00:38:39,980 --> 00:38:42,610 অথবা এটা সমান. 820 00:38:42,610 --> 00:38:44,750 আর আমি সমান বলতে পারে সমান, কিন্তু কথাটি এটা 821 00:38:44,750 --> 00:38:46,500 শুধু এখানে অন্য বলছে সমতূল্য. 822 00:38:46,500 --> 00:38:49,150 সুতরাং সত্য আমি কিছু খুঁজে কিভাবে হয়. 823 00:38:49,150 --> 00:38:51,710 তাই আশা করছি এই একটি হল এমনকি আরো আকর্ষক উদাহরণস্বরূপ 824 00:38:51,710 --> 00:38:54,900 মূঢ় সিগমা ফাংশন তুলনায় আমরা ফিরে কয়েকটি বক্তৃতা করেনি 825 00:38:54,900 --> 00:38:58,360 যেখানে এটি একটি লুপ ব্যবহার ঠিক যেমন সহজ ছিল এক থেকে সমস্ত সংখ্যা গণনা 826 00:38:58,360 --> 00:39:02,390 একটি ডাটা স্ট্রাকচার সাথে এখানে এন করার নিজেই পৌনঃপুনিকভাবে যে 827 00:39:02,390 --> 00:39:07,050 আমরা এখন, সংজ্ঞায়িত এবং পৌনঃপুনিকভাবে টানা নিজেদের প্রকাশ করার ক্ষমতা আছে 828 00:39:07,050 --> 00:39:09,780 কোড নিজেই রিকার্সিভ যে. 829 00:39:09,780 --> 00:39:12,580 তাই এই এখানে সঠিক একই কোড. 830 00:39:12,580 --> 00:39:14,400 >> তাই আমরা কি অন্যান্য সমস্যার সমাধান করতে পারে? 831 00:39:14,400 --> 00:39:18,160 দূরে থেকে তাই একটি দ্রুত পদক্ষেপ মাত্র কয়েক মিনিটের জন্য গাছ. 832 00:39:18,160 --> 00:39:20,130 এখানে, জার্মান পতাকা বলতে. 833 00:39:20,130 --> 00:39:22,020 এবং পরিষ্কারভাবে আছে একটি এই পতাকা প্যাটার্ন. 834 00:39:22,020 --> 00:39:23,811 আর প্রচুর আছে বিশ্বের পতাকা যে 835 00:39:23,811 --> 00:39:27,560 পরিপ্রেক্ষিতে এই হিসাবে হিসাবে সহজ হয় তাদের রং এবং নকশার. 836 00:39:27,560 --> 00:39:31,930 কিন্তু এই একটি হিসেবে সংরক্ষণ করা হয় যে অনুমান .GIF, বা কোন JPEG, বা বিটম্যাপ, বা পিং, 837 00:39:31,930 --> 00:39:34,240 কোনো গ্রাফিক্যাল ফাইল ফরম্যাট যা দিয়ে আপনি পরিচিত হন 838 00:39:34,240 --> 00:39:36,460 আমরা করছি যা কিছু Pset4 সঙ্গে বাজানো. 839 00:39:36,460 --> 00:39:41,550 এই দোকান থেকে লাভবানই বলে মনে হচ্ছে না কালো পিক্সেল, কালো পিক্সেল, কালো পিক্সেল, 840 00:39:41,550 --> 00:39:44,790 বিন্দু, বিন্দু, বিন্দু, আভা প্রথম scanline জন্য কালো পিক্সেল, 841 00:39:44,790 --> 00:39:47,430 বা সারি, তারপর আভা একই, তারপর আভা 842 00:39:47,430 --> 00:39:49,530 তারপর একই, এবং লাল পিক্সেল আভা, 843 00:39:49,530 --> 00:39:53,020 লাল পিক্সেল, লাল পিক্সেল, তারপর একটি সম্পূর্ণ হলুদ হলুদ পিক্সেল গুচ্ছ, ডান? 844 00:39:53,020 --> 00:39:55,050 >> যেমন অদক্ষতা আছে এখানে. 845 00:39:55,050 --> 00:39:59,040 কিভাবে intuitively আপনি would জার্মান পতাকা কম্প্রেস 846 00:39:59,040 --> 00:40:01,320 একটি ফাইল হিসাবে এটি বাস্তবায়ন হলে? 847 00:40:01,320 --> 00:40:04,940 কি তথ্য মত আমরা না পারেন যাতে সংরক্ষণ করা ডিস্কের উপর বিরক্ত 848 00:40:04,940 --> 00:40:08,040 ভালো থেকে আমাদের ফাইলের আকার হ্রাস করা একটি কিলোবাইট, কিছু করার জন্য একটি দিন মেগাবাইটে 849 00:40:08,040 --> 00:40:09,430 ছোট? 850 00:40:09,430 --> 00:40:13,130 তথায় অতিরেক মিথ্যা এখানে স্পষ্ট করা? 851 00:40:13,130 --> 00:40:13,880 আপনি কী করতে পারেন? 852 00:40:13,880 --> 00:40:14,380 হ্যা? 853 00:40:14,380 --> 00:40:21,380 854 00:40:21,380 --> 00:40:21,970 ঠিক. 855 00:40:21,970 --> 00:40:24,550 কেন না বরং মনে রাখবেন প্রতি অভিশাপ পিক্সেল রঙ 856 00:40:24,550 --> 00:40:28,200 শুধু আপনি pset4 করছেন মত বিটম্যাপ ফাইল ফরম্যাট সঙ্গে, 857 00:40:28,200 --> 00:40:32,060 কেন আপনি শুধু প্রতিনিধিত্ব করেন না উদাহরণস্বরূপ পিক্সেল একেবারে বামের কলামে, 858 00:40:32,060 --> 00:40:35,370 কালো পিক্সেল একটি গুচ্ছ, একটি গুচ্ছ লাল, হলুদ এবং একটি গুচ্ছ, 859 00:40:35,370 --> 00:40:39,210 এবং তারপর ঠিক একরকম সঙ্কেতাক্ষরে লিখা পুনরাবৃত্ত ধারণা এই 100 বার 860 00:40:39,210 --> 00:40:41,020 বা এই 1,000 বার পুনরাবৃত্তি? 861 00:40:41,020 --> 00:40:43,430 যেখানে 100 বা 1,000 শুধু একটি পূর্ণসংখ্যা, আপনি এ 862 00:40:43,430 --> 00:40:47,290 শুধু একটি একক সংখ্যা দিয়ে পার পেতে পারেন পরিবর্তে শত শত বা হাজার হাজার 863 00:40:47,290 --> 00:40:48,270 অতিরিক্ত পিক্সেল. 864 00:40:48,270 --> 00:40:50,990 এবং প্রকৃতপক্ষে, যে কিভাবে আমরা এর জার্মান পতাকা কম্প্রেস করতে পারে. 865 00:40:50,990 --> 00:40:51,490 এবং 866 00:40:51,490 --> 00:40:53,470 ফরাসি পতাকা সম্পর্কে এখন কি? 867 00:40:53,470 --> 00:40:58,930 কিছু ধরণের আর একটু মানসিক ব্যায়াম, যা পতাকা 868 00:40:58,930 --> 00:41:01,040 ডিস্কে আরও সংকুচিত করা যেতে পারে? 869 00:41:01,040 --> 00:41:05,720 জার্মান পতাকা বা ফরাসি পতাকা, আমরা যে অভিগমন? 870 00:41:05,720 --> 00:41:08,490 জার্মান পতাকা আছে, কারণ আরো অনুভূমিক অতিরেক. 871 00:41:08,490 --> 00:41:12,190 এবং নকশা দ্বারা অনেক গ্রাফিক্যাল ফাইল ফরম্যাটের প্রকৃতপক্ষে হিসাবে স্ক্যান লাইন কাজ না 872 00:41:12,190 --> 00:41:12,830 অনুভূমিকভাবে. 873 00:41:12,830 --> 00:41:14,674 তারা কাজ করতে পারে উল্লম্বভাবে, শুধু মানবতার 874 00:41:14,674 --> 00:41:17,090 সিদ্ধান্ত বছর আগে যে আমরা করব সাধারণত কিছু সারির মনে 875 00:41:17,090 --> 00:41:18,880 কলাম দ্বারা সারিতে পরিবর্তে কলাম দ্বারা. 876 00:41:18,880 --> 00:41:20,820 তাই প্রকৃতপক্ষে হলে ফাইল তাকান 877 00:41:20,820 --> 00:41:24,670 একটি জার্মান পতাকা এবং একটি ফরাসি আকার পতাকা, এতক্ষণ রেজল্যুশন হিসাবে 878 00:41:24,670 --> 00:41:27,530 একই, একই প্রস্থ এবং উচ্চতা, এই এক 879 00:41:27,530 --> 00:41:31,580 এখানে, বড় হতে যাচ্ছে আপনাকে কারণ নিজেকে তিনবার পুনরাবৃত্তি আছে. 880 00:41:31,580 --> 00:41:35,570 আপনি নীল, পুনরাবৃত্ত নির্দিষ্ট করা আছে নিজেকে, সাদা, লাল, নিজেকে পুনরাবৃত্তি 881 00:41:35,570 --> 00:41:36,740 নিজেকে পুনরাবৃত্তি. 882 00:41:36,740 --> 00:41:39,000 আপনি শুধু সব হয়ে যেতে পারে না ডান উপায়. 883 00:41:39,000 --> 00:41:41,200 এবং একটি সরাইয়া হিসাবে, করতে কম্প্রেশন পরিষ্কার 884 00:41:41,200 --> 00:41:43,910 এইসব হয় তাহলে, সর্বত্র হয় একটি video-- থেকে চার ফ্রেম আপনি 885 00:41:43,910 --> 00:41:45,890 একটি সিনেমা যে প্রত্যাহার করা হতে পারে অথবা ভিডিও সাধারণত হয় 886 00:41:45,890 --> 00:41:47,286 প্রতি সেকেন্ডে 29 বা 30 ফ্রেম মত. 887 00:41:47,286 --> 00:41:50,410 এটা একটা সামান্য উল্টানো বই মত যেখানে আপনি শুধু ইমেজ, ইমেজ, ইমেজ, ইমেজ দেখতে, 888 00:41:50,410 --> 00:41:54,410 ছবিটি শুধু সুপার ফাস্ট তাই এটা দেখে মনে হচ্ছে পর্দায় অভিনেতা চলন্ত হয়. 889 00:41:54,410 --> 00:41:57,130 এখানে একটি ভোমরা উপর ফুলের গুচ্ছ উপরের. 890 00:41:57,130 --> 00:41:59,790 এবং এটা কোন ধরনের হতে পারে, যদিও প্রথম নজরে দেখতে কঠিন, 891 00:41:59,790 --> 00:42:04,020 চলন্ত শুধু এই মুভি মৌমাছি. 892 00:42:04,020 --> 00:42:06,880 >> কী সংরক্ষণকারী সম্পর্কে বোবা ভিডিও uncompressed? 893 00:42:06,880 --> 00:42:11,420 এটা ভিডিও ধারণ করার জন্য একটি বর্জ্য ধরনের চার প্রায় অভিন্ন চিত্র হিসাবে যে 894 00:42:11,420 --> 00:42:13,670 শুধুমাত্র যতটা মৌমাছি যেখানে যেমন ভিন্ন. 895 00:42:13,670 --> 00:42:16,280 আপনি বর্জন করা যেতে পারে সবচেয়ে যে তথ্য 896 00:42:16,280 --> 00:42:20,190 এবং শুধুমাত্র মনে, উদাহরণস্বরূপ, প্রথম ফ্রেম ও শেষ ফ্রেম, 897 00:42:20,190 --> 00:42:22,180 আপনি করেছি তাহলে কী ফ্রেম কখনও, শব্দ শোনা 898 00:42:22,180 --> 00:42:24,337 এবং শুধু সঞ্চয় মৌমাছি যেখানে মাঝখানে. 899 00:42:24,337 --> 00:42:26,170 এবং যদি আপনি করতে হবে না , গোলাপী সব সঞ্চয় 900 00:42:26,170 --> 00:42:28,330 নীল, এবং এবং সবুজ মান হিসাবে ভাল. 901 00:42:28,330 --> 00:42:31,200 সুতরাং এই মাত্র যে বলতে হয় কম্প্রেশন সর্বত্র হয়. 902 00:42:31,200 --> 00:42:34,900 এটা আমরা প্রায়ই ব্যবহার একটি টেকনিক এই দিন হালকাভাবে বা নিতে. 903 00:42:34,900 --> 00:42:38,750 >> কিন্তু কিভাবে আপনি টেক্সট কম্প্রেস না? 904 00:42:38,750 --> 00:42:40,450 কিভাবে আপনি টেক্সট সংকুচিতকারী যেতে না? 905 00:42:40,450 --> 00:42:45,410 ওয়েল, প্রতিটি অক্ষরের মধ্যে ASCII এক বাইট, বা আট বিট. 906 00:42:45,410 --> 00:42:47,360 এবং যে ধরনের মূক, ঠিক? 907 00:42:47,360 --> 00:42:51,160 আপনি সম্ভবত একটি টাইপ কারণ এবং ই ও আমি এবং o, u অনেক 908 00:42:51,160 --> 00:42:55,270 আরো প্রায়ই ওয়াট বা প্রশ্ন বা Z মত চেয়ে, ভাষার উপর নির্ভর করে যা 909 00:42:55,270 --> 00:42:56,610 আপনি অবশ্যই লেখার. 910 00:42:56,610 --> 00:42:59,600 এবং তাই কেন আমরা ব্যবহার করছেন প্রতিটি অক্ষর এবং আট বিট, 911 00:42:59,600 --> 00:43:02,040 অন্তত সহ জনপ্রিয় অক্ষর, ডান? 912 00:43:02,040 --> 00:43:05,300 কেন কম বিট ব্যবহার করবেন সুপার জনপ্রিয় অক্ষর, 913 00:43:05,300 --> 00:43:07,760 ই ভালো, কিছু আপনি অনুমান প্রথম ফরচুন র চাকা, 914 00:43:07,760 --> 00:43:10,450 এবং এর জন্য আরো বিট ব্যবহার কম জনপ্রিয় অক্ষর? 915 00:43:10,450 --> 00:43:10,950 কেন? 916 00:43:10,950 --> 00:43:13,130 আমরা শুধু চলুন, কারণ কম ঘন ঘন তাদের ব্যবহার. 917 00:43:13,130 --> 00:43:15,838 >> ওয়েল, এটা আছে যে দেখা যাচ্ছে এই কাজ করতে প্রচেষ্টা হয়েছে. 918 00:43:15,838 --> 00:43:18,630 এবং যদি আপনি গ্রেড থেকে প্রত্যাহার হলে স্কুল বা উচ্চ বিদ্যালয়, জলহস্তী কোড. 919 00:43:18,630 --> 00:43:20,400 জলহস্তী কোড বিন্দু আছে এবং ড্যাশ হতে পারে 920 00:43:20,400 --> 00:43:24,270 একটি তারের হিসাবে বরাবর প্রেরণ করা শব্দ বা কিছু ধরণের সংকেত. 921 00:43:24,270 --> 00:43:25,930 কিন্তু জলহস্তী কোড একটি সুপার পরিষ্কার. 922 00:43:25,930 --> 00:43:29,010 এটা একটি বাইনারি সিস্টেম ধরনের যে আপনি বিন্দু বা ড্যাশ আছে. 923 00:43:29,010 --> 00:43:30,977 কিন্তু আপনি, উদাহরণস্বরূপ, দুটি বিন্দু দেখতে পারেন. 924 00:43:30,977 --> 00:43:33,810 অথবা আপনি অপারেটর ফিরে মনে করেন যারা, হুইসেল, হুইসেল, হুইসেল মত যায় 925 00:43:33,810 --> 00:43:36,760 হুইসেল, একটু ট্রিগার চাপার যে একটি সংকেত প্রেরণ করে, 926 00:43:36,760 --> 00:43:40,360 আপনি যদি, প্রাপক, দুটি পায় বিন্দু, কি বার্তা পেয়েছি? 927 00:43:40,360 --> 00:43:43,490 সম্পূর্ণ অবাধ. 928 00:43:43,490 --> 00:43:44,450 >> আমি? 929 00:43:44,450 --> 00:43:45,060 আমি? 930 00:43:45,060 --> 00:43:47,500 অথবা কি about-- বা আমি? 931 00:43:47,500 --> 00:43:49,570 হয়তো এটা শুধু দুটি ই এর সঠিক ছিল? 932 00:43:49,570 --> 00:43:52,480 তাই এই সমস্যা আছে জলহস্তী সঙ্গে decodability এর 933 00:43:52,480 --> 00:43:54,890 কোড, যদ্দ্বারা তবে আপনার বার্তা পাঠানোর ব্যক্তি 934 00:43:54,890 --> 00:43:59,510 আসলে তাই আপনাকে সাজাতে পারেন pauses দেখতে বা অক্ষর মধ্যে ফাঁক শুনতে, 935 00:43:59,510 --> 00:44:02,990 এটা শুধু যথেষ্ট নয় zeros এবং বেশী একটি স্ট্রিম পাঠান, 936 00:44:02,990 --> 00:44:05,610 বা বিন্দু এবং ড্যাশ, অস্পষ্টতা আছে, কারণ. 937 00:44:05,610 --> 00:44:08,640 ই একটি একক বিন্দু, তাই আপনি যদি দুটি বিন্দু দেখতে বা দুটি বিন্দুর শুনতে, 938 00:44:08,640 --> 00:44:11,254 হয়তো এটা দুই ই এর বা হয়তো এটা এক আই এর 939 00:44:11,254 --> 00:44:13,670 সুতরাং আমরা একটি যে একটি সিস্টেম প্রয়োজন যে বেশী চালাক সামান্য. 940 00:44:13,670 --> 00:44:16,851 সুতরাং একজন মানুষ নামক Huffman বছর আগে ঠিক এই নিয়ে এসেছেন. 941 00:44:16,851 --> 00:44:18,600 তাই আমরা ঠিক যাচ্ছেন এক ঝলকে নেওয়া 942 00:44:18,600 --> 00:44:20,114 কিভাবে এ গাছ এই সঙ্গত হয়. 943 00:44:20,114 --> 00:44:22,530 এই কিছু যে ধরুন আপনি পাঠাতে চান মূঢ় বার্তা, 944 00:44:22,530 --> 00:44:26,342 শুধু একটি, বি গঠিত, সি এর ডি 'র এবং এর ই, কিন্তু অতিরেক একটি অনেক আছে এখানে. 945 00:44:26,342 --> 00:44:27,550 এটা ইংরেজি হতে বোঝানো না. 946 00:44:27,550 --> 00:44:28,341 এটি এনক্রিপ্ট না. 947 00:44:28,341 --> 00:44:30,540 এটা স্রেফ একটি বার্তা পুনরাবৃত্তি প্রচুর সঙ্গে. 948 00:44:30,540 --> 00:44:34,010 আপনি আসলে গণনা হলে তাই সব একটি এর, বি এর, সি এর, D 'গুলি, এবং এর ই, এখানে 949 00:44:34,010 --> 00:44:34,890 ফ্রিকোয়েন্সি. 950 00:44:34,890 --> 00:44:37,800 অক্ষর 20% হয় ক-এর, অক্ষর 45% 951 00:44:37,800 --> 00:44:39,660 ই এর, এবং তিনটি অন্যান্য ফ্রিকোয়েন্সি হয়. 952 00:44:39,660 --> 00:44:41,960 আমরা নিজে সেখানে আপ গণনা এবং শুধু গণিত করেনি. 953 00:44:41,960 --> 00:44:44,579 >> সুতরাং দেখা যাচ্ছে যে, যাও Huffman, কিছু সময় আগে, 954 00:44:44,579 --> 00:44:46,620 আপনি জানেন, যে উপলব্ধি কি, আমি বিল্ডিং শুরু হলে 955 00:44:46,620 --> 00:44:51,172 একটি বৃক্ষ, বা গাছ বন, যদি আপনি হবে, নিম্নরূপ, আমি নিচের কাজগুলো করতে পারেন. 956 00:44:51,172 --> 00:44:53,880 আমি প্রতিটি একটি নোডের দিতে যাচ্ছি আমি যত্নশীল যে চিঠি 957 00:44:53,880 --> 00:44:55,530 এবং আমি দোকান থেকে যাচ্ছি যে নোড ভেতরে 958 00:44:55,530 --> 00:44:58,610 একটি ফ্লোটিং পয়েন্ট হিসাবে ফ্রিকোয়েন্সি মূল্য, অথবা আপনি খুব, একটি N এটি ব্যবহার করতে পারে 959 00:44:58,610 --> 00:45:00,210 কিন্তু আমরা শুধু এখানে একটি float ব্যবহার করব. 960 00:45:00,210 --> 00:45:03,100 এবং এলগরিদম যে তিনি আপনাকে যে প্রস্তাব 961 00:45:03,100 --> 00:45:07,210 একক নোড এই বন নেওয়া গাছ, তাই সুপার সংক্ষিপ্ত গাছ, 962 00:45:07,210 --> 00:45:11,920 এবং আপনার সাথে তাদের সংযোগ শুরু নতুন গ্রুপ, নতুন বাবা, যদি আপনি হবে. 963 00:45:11,920 --> 00:45:16,150 এবং যদি আপনি চয়ন করে এই কাজ একটি সময়ে দুটি ক্ষুদ্রতম ফ্রিকোয়েন্সি. 964 00:45:16,150 --> 00:45:18,110 তাই আমি 10% এবং 10% নেন. 965 00:45:18,110 --> 00:45:19,090 আমি একটি নতুন নোড নির্মাণ. 966 00:45:19,090 --> 00:45:20,910 আর আমি নতুন নোডের 20% কল. 967 00:45:20,910 --> 00:45:22,750 >> যা দুই নোড আমি পরের একত্রিত? 968 00:45:22,750 --> 00:45:23,810 এটা একটা সামান্য দ্ব্যর্থক এর. 969 00:45:23,810 --> 00:45:26,643 তাই কিছু কোণ ক্ষেত্রে আছে বিবেচনা, কিন্তু সুন্দর জিনিষ রাখতে, 970 00:45:26,643 --> 00:45:29,300 আমি 20% নিন যাচ্ছি - আমি এখন শিশুদের উপেক্ষা. 971 00:45:29,300 --> 00:45:33,640 আমি 20% নিন যাচ্ছি এবং 15% এবং দুটি নতুন প্রান্ত আঁকা. 972 00:45:33,640 --> 00:45:35,624 আর এখন যা দুটি নোড আমি যুক্তি একত্রিত না? 973 00:45:35,624 --> 00:45:38,540 সব শিশুদের, সব উপেক্ষা নাতি, শুধু শিকড় তাকান 974 00:45:38,540 --> 00:45:39,070 এখন. 975 00:45:39,070 --> 00:45:42,220 যা দুই নোড আমি একসাথে গিঁট না? 976 00:45:42,220 --> 00:45:44,530 পয়েন্ট দুটি এবং 0.35. 977 00:45:44,530 --> 00:45:45,890 তাই আমাকে দুটি নতুন প্রান্ত আঁকা যাক. 978 00:45:45,890 --> 00:45:47,570 এবং তারপর আমি শুধুমাত্র এক বাম পেয়েছেন. 979 00:45:47,570 --> 00:45:48,650 তাই এখানে একটি গাছ আছে. 980 00:45:48,650 --> 00:45:51,160 এবং এটি ইচ্ছাকৃতভাবে টানা হয়েছে ধরনের চমত্কার চেহারা, 981 00:45:51,160 --> 00:45:55,870 কিন্তু প্রান্ত আছে বিজ্ঞপ্তি শূন্য এবং এক লেবেল করা. 982 00:45:55,870 --> 00:45:59,510 সুতরাং বাম প্রান্ত সব শূন্য হয় ইচ্ছামত, কিন্তু ধারাবাহিকভাবে. 983 00:45:59,510 --> 00:46:01,170 সকল ডান প্রান্ত বেশী. 984 00:46:01,170 --> 00:46:05,070 >> আর তাই হফম্যান, হয় প্রস্তাবিত কি আপনি একটি বি প্রতিনিধিত্ব করতে চান, 985 00:46:05,070 --> 00:46:10,080 হিসাবে সংখ্যা 66 প্রতিনিধিত্ব বদলে আট সমগ্র বিট যা একটি ASCII, 986 00:46:10,080 --> 00:46:13,360 আপনি কি শুধু দোকান জানেন প্যাটার্ন শূন্য, শূন্য, শূন্য, 987 00:46:13,360 --> 00:46:17,030 শূন্য যে পথ, কারণ আমার বৃক্ষ থেকে, জনাব Huffman এর ট্রি, 988 00:46:17,030 --> 00:46:18,600 রুট থেকে পাতার. 989 00:46:18,600 --> 00:46:20,970 আপনি একটি সঞ্চয় করতে চান তাহলে ই, বৈসাদৃশ্য দ্বারা, না 990 00:46:20,970 --> 00:46:26,290 একটি ই প্রতিনিধিত্বকারী আট বিট পাঠান পরিবর্তে, বিট কি প্যাটার্ন পাঠাতে? 991 00:46:26,290 --> 00:46:26,890 এক. 992 00:46:26,890 --> 00:46:30,410 আর এই বিষয়ে চমৎকার কি যে ই সবচেয়ে জনপ্রিয় চিঠি, 993 00:46:30,410 --> 00:46:32,340 এবং আপনি ব্যবহার করছেন এটা জন্য কম কোড. 994 00:46:32,340 --> 00:46:34,090 পরবর্তী সবচেয়ে জনপ্রিয় চিঠি এটা দেখে মনে হচ্ছে 995 00:46:34,090 --> 00:46:37,380 উ ছিল এবং তাই কতগুলি বিট তিনি যে জন্য ব্যবহার উত্থাপন হয়নি? 996 00:46:37,380 --> 00:46:38,270 শূন্য, এক. 997 00:46:38,270 --> 00:46:41,060 >> আর এটা বাস্তবায়িত কারণ এই ট্রি হিসাবে, এখন জন্য 998 00:46:41,060 --> 00:46:43,350 আমার আছে চুক্তির শর্ত দেওয়া জলহস্তী হিসাবে কোন অস্পষ্টতা 999 00:46:43,350 --> 00:46:46,090 কোড, সব কারণ আপনি যত্নশীল অক্ষর 1000 00:46:46,090 --> 00:46:48,780 এই প্রান্ত শেষে হয়. 1001 00:46:48,780 --> 00:46:50,580 সুতরাং যে শুধু এক একটা গাছের আবেদন. 1002 00:46:50,580 --> 00:46:52,538 এই হচ্ছে ÑÑ আমি তরঙ্গ করব এই সময়ে আমার হাতে কিভাবে আপনি 1003 00:46:52,538 --> 00:46:55,570 একটি সি কাঠামো হিসেবে এই বাস্তবায়ন হতে পারে. 1004 00:46:55,570 --> 00:46:58,260 আমরা শুধু একত্রিত করতে হবে প্রতীক, একটি গৃহস্থালি মত, 1005 00:46:58,260 --> 00:46:59,910 এবং ফ্রিকোয়েন্সি বাম এবং ডান. 1006 00:46:59,910 --> 00:47:02,510 কিন্তু এর দুই তাকান চূড়ান্ত উদাহরণ যে আপনি পাবেন 1007 00:47:02,510 --> 00:47:06,070 পরে সঙ্গে বেশ পরিচিত পেতে সমস্যা ব্যঙ্গ শূন্য পাঁচটি সেট. 1008 00:47:06,070 --> 00:47:09,210 >> তাই ডাটা স্ট্রাকচার নেই একটি হ্যাশ টেবিল হিসাবে পরিচিত. 1009 00:47:09,210 --> 00:47:12,247 এবং একটি হ্যাশ টেবিল ধরনের হয় এটা বালতি আছে ঠান্ডা. 1010 00:47:12,247 --> 00:47:14,830 আর চার buckets আছে অনুমান এখানে, মাত্র চার ফাঁকা স্পেস. 1011 00:47:14,830 --> 00:47:20,830 এখানে হয় কার্ডের একটি ডেক, এবং ক্লাব, কোদাল, ক্লাব, ফুল, ক্লাব, 1012 00:47:20,830 --> 00:47:25,960 হীরা, ক্লাব, ফুল, clubs-- তাই এই র্যান্ডম হয়. 1013 00:47:25,960 --> 00:47:30,330 হৃদয়, hearts-- তাই আমি আছি এখানে ইনপুট সব bucketizing. 1014 00:47:30,330 --> 00:47:32,430 এবং একটি হ্যাশ টেবিল চাহিদা আপনার ইনপুট তাকান, 1015 00:47:32,430 --> 00:47:34,850 এবং তারপর একটি নির্দিষ্ট এটি করা আপনি দেখতে কি উপর ভিত্তি করে লিখুন. 1016 00:47:34,850 --> 00:47:35,600 এটা একটি অ্যালগরিদম. 1017 00:47:35,600 --> 00:47:37,980 আর আমি একটি সুপার ব্যবহার করা হয়েছিল সহজ চাক্ষুষ অ্যালগরিদম. 1018 00:47:37,980 --> 00:47:40,030 যা hardest অংশ ছিল ছবি ছিল তা মনে. 1019 00:47:40,030 --> 00:47:41,590 তারপর চার মোট জিনিষ আছে. 1020 00:47:41,590 --> 00:47:45,440 >> এখন stacks এর, ক্রমবর্ধমান হয়, যা এখানে একটি ইচ্ছাকৃত নকশা জিনিস. 1021 00:47:45,440 --> 00:47:46,540 কিন্তু আমি অন্য কি কি হতে পারে? 1022 00:47:46,540 --> 00:47:49,080 তাই আসলে এখানে আমরা একটি পুরানো স্কুল পরীক্ষার বই গুচ্ছ. 1023 00:47:49,080 --> 00:47:51,240 একটি গুচ্ছ যে ধরুন ছাত্র নাম এখানে আছে. 1024 00:47:51,240 --> 00:47:52,570 এখানে একটি বড় হ্যাশ টেবিল. 1025 00:47:52,570 --> 00:47:54,867 পরিবর্তে চার বালতি নিয়ে, আমি এর 26 বলে দেওয়া আছে. 1026 00:47:54,867 --> 00:47:57,950 আর আমরা 26 ধার যেতে চান না বাইরে [থেকে জিনিষ? Annenberg এ?], তাই 1027 00:47:57,950 --> 00:48:00,289 এখানে প্রতিনিধিত্বকারী পাঁচটি এর জেড মাধ্যমে এবং যদি আমি 1028 00:48:00,289 --> 00:48:03,580 , যার নাম একটি দিয়ে শুরু হয় একজন ছাত্র দেখতে আমি সেখানে তার ব্যঙ্গ করা যাচ্ছে না. 1029 00:48:03,580 --> 00:48:08,850 কেউ সি দিয়ে শুরু হয়, তাহলে ওইখানে, ছাগু karigor.com আসলে, যে কাজ করতে চান না. 1030 00:48:08,850 --> 00:48:10,060 বি এখানে ধরে যায়. 1031 00:48:10,060 --> 00:48:13,390 তাই আমি একটি পেয়েছেন এবং বি এবং সি আর এখন এখানে অন্য একটি ছাত্র এর. 1032 00:48:13,390 --> 00:48:16,212 কিন্তু এই হ্যাশ টেবিল হয় তাহলে একটি অ্যারের সাথে বাস্তবায়িত, 1033 00:48:16,212 --> 00:48:17,920 আমি কোন ধরনের মাতাল করছি এই সময়ে, ঠিক আছে? 1034 00:48:17,920 --> 00:48:19,510 আমি এই ধরনের কোথাও করা প্রয়োজন. 1035 00:48:19,510 --> 00:48:24,380 >> তাই আমি এই সমাধান করতে পারে একটি উপায় সব, হয় ঠিক আছে, একটি সি ব্যস্ত, বি ব্যস্ত, ব্যস্ত. 1036 00:48:24,380 --> 00:48:28,880 আমি এ তাই ডি তাকে রাখা যাচ্ছি প্রথমত, আমি র্যান্ডম তাত্ক্ষণিক এক্সেস আছে 1037 00:48:28,880 --> 00:48:31,064 ছাত্রদের জন্য বালতি প্রতিটি. 1038 00:48:31,064 --> 00:48:33,230 কিন্তু এখন এটা কোন ধরনের devolved হচ্ছে কিছু রৈখিক মধ্যে, 1039 00:48:33,230 --> 00:48:36,750 আমি কেউ জন্য অনুসন্ধান করতে চান, কারণ যার নাম একটি দিয়ে শুরু হয়, আমি এখানে চেক করুন. 1040 00:48:36,750 --> 00:48:38,854 কিন্তু এই একটি নয় যদি আমি চাই ছাত্র, 1041 00:48:38,854 --> 00:48:41,520 আমি ধরনের পরীক্ষণের শুরু আছে বালতি, আমি কি কারণ 1042 00:48:41,520 --> 00:48:44,530 এর সুসংগত সাজান ছিল ডাটা স্ট্রাকচার তদন্ত. 1043 00:48:44,530 --> 00:48:47,710 শুধু চেহারা বলছে একটি মূঢ় উপায় প্রথম উপলব্ধ খোলার জন্য, 1044 00:48:47,710 --> 00:48:51,850 এবং, তাই কথা বলতে, একটি পরিকল্পনা বি থেকে যত করা বা এই ক্ষেত্রে পরিকল্পনা ডি, মূল্য 1045 00:48:51,850 --> 00:48:53,340 পরিবর্তে যে অবস্থানে. 1046 00:48:53,340 --> 00:48:56,470 এই যে আপনি করেছি মাত্র, তাই হয় 26 অবস্থানে এবং কোন ছাত্র পেয়েছিলাম 1047 00:48:56,470 --> 00:49:00,600 নাম প্রশ্ন বা Z, বা কিছু সঙ্গে যে, অন্তত আপনি স্পেস ব্যবহার করছেন. 1048 00:49:00,600 --> 00:49:03,140 >> কিন্তু আমরা ইতিমধ্যে আরও দেখা করেছি এখানে চতুর সমাধান, ডান? 1049 00:49:03,140 --> 00:49:04,870 আপনি যদি এর পরিবর্তে কী করবেন আপনি একটি সংঘর্ষের আছে? 1050 00:49:04,870 --> 00:49:06,670 দুটি মানুষ থাকে নাম একটি, কি হবে 1051 00:49:06,670 --> 00:49:09,160 একটি স্মার্ট বা বেশি হয়েছে শুধু চেয়ে স্বজ্ঞাত সমাধান 1052 00:49:09,160 --> 00:49:12,840 ডি হতে অনুমিত হয় যেখানে একটি নির্বাণ? 1053 00:49:12,840 --> 00:49:14,810 কেন আমি শুধু যেতে হবে না বাইরে [? Annenberg এ?], 1054 00:49:14,810 --> 00:49:19,960 যদি malloc, অন্য একটি নোড মত, এটা করা এখানে, এবং তারপর এখানে একটি ছাত্র যে করা. 1055 00:49:19,960 --> 00:49:22,120 আমি মূলত আছে তাই একটি অ্যারের কিছু, 1056 00:49:22,120 --> 00:49:25,590 বা আমরা করছি হিসেবে হয়তো আরো elegantly একটি লিঙ্ক তালিকা দেখতে শুরু. 1057 00:49:25,590 --> 00:49:29,520 >> আর তাই একটি হ্যাশ টেবিল একটি কাঠামো যে, শুধু এই ভালো হত 1058 00:49:29,520 --> 00:49:33,900 কিন্তু আরো চালাকি, আপনি কিছু বলা পৃথক chaining, যদ্দ্বারা একটি হ্যাশ টেবিল 1059 00:49:33,900 --> 00:49:38,340 জবাবটা একটি অ্যারের প্রতিটি, হয় যার উপাদান একটি সংখ্যা নয়, 1060 00:49:38,340 --> 00:49:40,470 একটি লিঙ্ক তালিকা নিজেই. 1061 00:49:40,470 --> 00:49:45,080 আপনি সুপার দ্রুত অ্যাক্সেস পেতে যাতে যেখানে আপনার মান হ্যাশ মীমাংসাকারী. 1062 00:49:45,080 --> 00:49:48,059 অনেক কার্ড উদাহরণসহ মত, আমি দ্রুত সিদ্ধান্ত. 1063 00:49:48,059 --> 00:49:49,600 হৃদয় ফুল এখানে যায়, এখানে যায়. 1064 00:49:49,600 --> 00:49:52,180 এখানে একই, একটি এখানে যায়, ডি বি এখানে যায়, এখানে যায়. 1065 00:49:52,180 --> 00:49:55,740 তাই অতি দ্রুত বর্ণন আপগুলি, এবং যদি আপনি একটি মামলা পাতিত ঘটতে 1066 00:49:55,740 --> 00:49:59,429 যেখানে আপনি পেয়েছেন দুর্ঘটনায় দুই একই নামের সঙ্গে মানুষ, ভাল, তারপর 1067 00:49:59,429 --> 00:50:00,970 আপনি শুধু তাদের একসঙ্গে লিঙ্ক শুরু. 1068 00:50:00,970 --> 00:50:03,900 আর হয়তো আপনি তাদের সাজানো রাখতে বর্ণানুক্রমে, হতে পারে আপনি তা চান না. 1069 00:50:03,900 --> 00:50:05,900 কিন্তু অন্তত এখন আমরা গতিশীলতা আছে. 1070 00:50:05,900 --> 00:50:10,250 তাই একদিকে আমরা সুপার ফাস্ট আছে ধ্রুব সময়, এবং রৈখিক সময় ধরনের 1071 00:50:10,250 --> 00:50:14,110 এই লিঙ্ক তালিকা যদি জড়িত একটু দীর্ঘ পেতে শুরু. 1072 00:50:14,110 --> 00:50:16,880 >> সুতরাং একটি নিরীহ এই ধরনের, আগে, geeky তামাশা বছর. 1073 00:50:16,880 --> 00:50:19,590 CS50 হ্যাক একটি thon এ, ছাত্র চেক যখন, 1074 00:50:19,590 --> 00:50:22,040 কিছু TF অথবা সিএ প্রতি বছর মনে এটা করা মজার 1075 00:50:22,040 --> 00:50:27,772 এই মত একটি চিহ্ন, যেখানে এটি শুধু আপনার নাম একটি A দিয়ে শুরু হয়, তাহলে এর মানে হল, 1076 00:50:27,772 --> 00:50:28,870 এই দিকে যান. 1077 00:50:28,870 --> 00:50:31,110 আপনার নাম শুরু হয়, তাহলে একটি বি, আপাততঃ ঠিক আছে যান, 1078 00:50:31,110 --> 00:50:33,290 এটা হতে পারে পরবর্তী সেমিস্টারে মজার. 1079 00:50:33,290 --> 00:50:36,420 কিন্তু অন্য আছে খুব, এই কাজ করার উপায়. 1080 00:50:36,420 --> 00:50:37,410 যে ফিরে আসতে. 1081 00:50:37,410 --> 00:50:38,600 >> সুতরাং এই কাঠামো আছে. 1082 00:50:38,600 --> 00:50:40,420 আর এটাই আমাদের শেষ হয় আজকের জন্য কাঠামো, 1083 00:50:40,420 --> 00:50:42,400 যা একটি trie কিছু বলা হয়. 1084 00:50:42,400 --> 00:50:47,140 কিছু কারণে স্বল্প যা টি-আর-আমি-ই, আহরণ জন্য, কিন্তু এটা Trie বলা হচ্ছে. 1085 00:50:47,140 --> 00:50:51,389 সুতরাং একটি trie অন্য আকর্ষণীয় এই ধারণা অনেক সংমিশ্রণ. 1086 00:50:51,389 --> 00:50:52,930 এটা আমরা দেখা করেছি, যা একটি গাছ, না. 1087 00:50:52,930 --> 00:50:54,180 এটি একটি বাইনারি অনুসন্ধান বৃক্ষ নয়. 1088 00:50:54,180 --> 00:50:58,410 এটা শিশুদের যে কোন সংখ্যার সঙ্গে একটি গাছ এর কিন্তু একটি trie শিশুদের প্রতিটি 1089 00:50:58,410 --> 00:51:00,090 একটি অ্যারে. 1090 00:51:00,090 --> 00:51:04,790 আকারের একটি অ্যারে, 26 বা হয়তো 27 বলে আপনি hyphenated নাম সমর্থন করতে চান তাহলে 1091 00:51:04,790 --> 00:51:06,790 বা মানুষ এর নাম মধ্যে Apostrophes. 1092 00:51:06,790 --> 00:51:08,280 >> আর তাই এই একটি ডাটা স্ট্রাকচার. 1093 00:51:08,280 --> 00:51:10,290 যদি আপনি এটির উপরে থেকে দেখুন তাহলে নীচে, আপনি যদি চান 1094 00:51:10,290 --> 00:51:13,710 হয় সেখানে উপরের নোড, এম এ দেখুন সেখানে একেবারে বামের জিনিস প্রতি নির্দেশ, 1095 00:51:13,710 --> 00:51:17,665 যা পরে একটি, এক্স, ওয়াট, ই, এল, এল এই হয় শুধু একটি ডাটা স্ট্রাকচার যে ইচ্ছামত 1096 00:51:17,665 --> 00:51:19,120 মানুষ এর নাম সংরক্ষণ করা হয়. 1097 00:51:19,120 --> 00:51:25,720 ম্যাক্সওয়েল মাত্র অনুসরণ করে সংরক্ষণ করা হয় অ্যারের অ্যারের অ্যারের একটি পাথ. 1098 00:51:25,720 --> 00:51:30,050 একটি trie সম্পর্কে কিন্তু আশ্চর্যজনক কি , যে একটি লিঙ্ক তালিকা যেহেতু এবং এমনকি 1099 00:51:30,050 --> 00:51:34,520 একটি অ্যারের, আমরা কখনও অর্জিত করেছি সেরা রৈখিক সময় বা লগারিদমিক সময় খুঁজছি 1100 00:51:34,520 --> 00:51:35,600 কেউ আপ. 1101 00:51:35,600 --> 00:51:40,530 একটি trie এই ডাটা স্ট্রাকচার, যদি ইন আমার ডাটা স্ট্রাকচার এটা এক নাম আছে 1102 00:51:40,530 --> 00:51:43,720 এবং আমি ম্যাক্সওয়েল খুঁজছি, আমি আছি প্রশংসনীয় দ্রুত তাকে খুঁজে পাওয়া যাচ্ছে. 1103 00:51:43,720 --> 00:51:47,910 আমি শুধু এম একটি এক্স-ওয়াট-ই-এল-এল-এর জন্য দেখুন. যদি এই ডাটা স্ট্রাকচার, বিপরীতভাবে, 1104 00:51:47,910 --> 00:51:51,830 একটি আছে, n, একটি মিলিয়ন যদি এই তথ্য কাঠামো মিলিয়ন নাম, 1105 00:51:51,830 --> 00:51:57,100 ম্যাক্সওয়েল এখনও হতে যাচ্ছে ডিসকভারেবেল শুধু এম একটি এক্স-ওয়াট-ই-এল-এল পরে 1106 00:51:57,100 --> 00:51:58,090 ধাপ. 1107 00:51:58,090 --> 00:52:01,276 আর ডেভিড ডি-একটি-ভী আমি ডি পদক্ষেপ. 1108 00:52:01,276 --> 00:52:03,400 অন্য কথায়, নির্মাণের দ্বারা যে একটি ডাটা স্ট্রাকচার 1109 00:52:03,400 --> 00:52:07,240 পেয়েছিলাম এই অ্যারে সব, সব যা নিজেদের, র্যান্ডম এক্সেস সমর্থন 1110 00:52:07,240 --> 00:52:11,090 আমি মানুষ এর দিকে তাকিয়ে শুরু করতে পারেন যে সময় একটি পরিমাণ ব্যবহার করে নাম 1111 00:52:11,090 --> 00:52:14,340 না সংখ্যা সমানুপাতিক তথ্য কাঠামো জিনিস, 1112 00:52:14,340 --> 00:52:16,330 মত একটি মিলিয়ন বিদ্যমান নাম. 1113 00:52:16,330 --> 00:52:20,135 এটা বের করতে আমার সময় লাগে সময় পরিমাণ এম-একটি-এক্স-ওয়াট-ই-এল-এল এই তথ্য কাঠামো হয় 1114 00:52:20,135 --> 00:52:22,260 সমানুপাতিক না করতে ডাটা স্ট্রাকচার এর আকার, 1115 00:52:22,260 --> 00:52:25,930 কিন্তু নাম দৈর্ঘ্যের. 1116 00:52:25,930 --> 00:52:28,440 এবং বাস্তবধর্মী নাম আমরা আপ খুঁজছেন 1117 00:52:28,440 --> 00:52:29,970 না ঐসব গোনাহর পাগল হতে যাচ্ছি. 1118 00:52:29,970 --> 00:52:32,600 হয়তো কেউ একজন 10 অক্ষর আছে , 20 অক্ষর নাম নাম. 1119 00:52:32,600 --> 00:52:33,900 এটা ঠিক আছে, অবশ্যই সমাপিকা? 1120 00:52:33,900 --> 00:52:37,110 পৃথিবীতে একজন মানুষ আছে যারা দীর্ঘতম সম্ভব নাম আছে, 1121 00:52:37,110 --> 00:52:39,920 কিন্তু যে নাম একটি ধ্রুবক মান দৈর্ঘ্য, ডান? 1122 00:52:39,920 --> 00:52:41,980 এটা কোন অর্থে পরিবর্তিত হয় না. 1123 00:52:41,980 --> 00:52:45,090 তাই এই ভাবে, আমরা করেছি একটি ডাটা স্ট্রাকচার অর্জন 1124 00:52:45,090 --> 00:52:47,800 যে ধ্রুব বর্ণন সময়-আপ হয়. 1125 00:52:47,800 --> 00:52:50,670 এটা পদক্ষেপ গ্রহণ করা আছে ইনপুট দৈর্ঘ্যের উপর নির্ভর করে, 1126 00:52:50,670 --> 00:52:54,250 নামের কিন্তু সংখ্যা তথ্য কাঠামো. 1127 00:52:54,250 --> 00:52:58,700 আমরা নাম সংখ্যা দ্বিগুণ যদি তাই একটি বিলিয়ন বিলিয়ন থেকে দুই থেকে পরের বছর, 1128 00:52:58,700 --> 00:53:03,720 খোঁজ ম্যাক্সওয়েল নিতে যাচ্ছে সাত ধাপ সঠিক একই সংখ্যা 1129 00:53:03,720 --> 00:53:04,650 তাকে খুঁজে পেতে. 1130 00:53:04,650 --> 00:53:08,810 আর তাই আমরা অর্জন করেছি বলে মনে হচ্ছে সময় চলমান আমাদের পবিত্র ঈপ্সিত বস্তু. 1131 00:53:08,810 --> 00:53:10,860 >> তাই দ্রুত ঘোষণা একটি দম্পতি. 1132 00:53:10,860 --> 00:53:11,850 ব্যঙ্গ শূন্য আপ আসছে. 1133 00:53:11,850 --> 00:53:14,600 অবশ্যই এর ওয়েবসাইটে যে আরও আগামী কয়েকদিনের ওভার. 1134 00:53:14,600 --> 00:53:17,120 সোমবারের এটি একটি ছুটির দিন lecture-- এখানে হার্ভার্ড এ সোমবার. 1135 00:53:17,120 --> 00:53:18,850 এটা নিউ হ্যাভেন না তাই আমরা ক্লাসে গ্রহণ করছেন 1136 00:53:18,850 --> 00:53:20,310 সোমবার বক্তৃতা করার জন্য নিউ হ্যাভেন থেকে. 1137 00:53:20,310 --> 00:53:22,550 সবকিছু শুট করা হবে এবং যথারীতি লাইভ স্ট্রিম 1138 00:53:22,550 --> 00:53:24,900 কিন্তু এর আজ শেষ দিন একটি 30 দ্বিতীয় ক্লিপ দিয়ে 1139 00:53:24,900 --> 00:53:26,910 বলা "ডিপ থটস" Daven Farnham, দ্বারা যা 1140 00:53:26,910 --> 00:53:30,850 শনিবার দ্বারা গত বছরের অনুপ্রাণিত হয়েছিলাম নাইট লাইভ এর "ডিপ থটস" 1141 00:53:30,850 --> 00:53:35,700 জ্যাক কুশলী, দ্বারা যা এখন জানার উচিত. 1142 00:53:35,700 --> 00:53:38,810 >> চলচ্চিত্র: আর এখন, "ডিপ Daven Farnham দ্বারা থটস ". 1143 00:53:38,810 --> 00:53:42,100 1144 00:53:42,100 --> 00:53:42,870 হ্যাশ টেবিল. 1145 00:53:42,870 --> 00:53:45,940 1146 00:53:45,940 --> 00:53:47,660 >> বক্তা 1: ঠিক আছে, যে এখন জন্য এটি. 1147 00:53:47,660 --> 00:53:48,805 আমরা আগামী সপ্তাহে আপনি দেখতে পাবেন. 1148 00:53:48,805 --> 00:53:55,380 1149 00:53:55,380 --> 00:53:56,680 >> ডগ: এটিকে অ্যাকশনে দেখুন. 1150 00:53:56,680 --> 00:53:58,304 সুতরাং আসুন এই মুহূর্তে যে কটাক্ষপাত করা যাক. 1151 00:53:58,304 --> 00:53:59,890 তাই এখানে, আমরা একটি পাঁচমিশালী অ্যারে আছে. 1152 00:53:59,890 --> 00:54:04,860 >> ইয়ান: ডগ, আপনি এগিয়ে এবং পুনর্সূচনা যেতে পারেন মাত্র এক দ্বিতীয় জন্য এই, দয়া করে. 1153 00:54:04,860 --> 00:54:08,562 ঠিক আছে, ক্যামেরা, তাই ঘূর্ণায়মান হয় কর্ম আপনি ডগ, প্রস্তুত যখনই, ঠিক আছে? 1154 00:54:08,562 --> 00:54:11,020 ডগ: ঠিক আছে, তাই কি আমরা এখানে আছে একটি পাঁচমিশালী অ্যারে. 1155 00:54:11,020 --> 00:54:13,960 আর আমি উপাদানের সমস্ত রঙ্গিন করেছি এটা আসলে, যে ইঙ্গিত লাল, 1156 00:54:13,960 --> 00:54:14,460 পাঁচমিশালী. 1157 00:54:14,460 --> 00:54:17,960 তাই সর্বপ্রথম যে আমরা প্রত্যাহার আমরা অ্যারের বাম অর্ধেক বাছাই হয়. 1158 00:54:17,960 --> 00:54:20,630 তারপর আমরা ডান সাজানোর অ্যারে অর্ধেক. 1159 00:54:20,630 --> 00:54:22,830 আগে-হ্যাঁ, আস-হ্যাঁ, আস-দা, আমরা তাদের একসঙ্গে একত্রীকরণ. 1160 00:54:22,830 --> 00:54:24,520 আর আমরা একটি সম্পূর্ণ সাজানো অ্যারে আছে. 1161 00:54:24,520 --> 00:54:25,360 সুতরাং যে কাজ সাজান একত্রীকরণ কিভাবে. 1162 00:54:25,360 --> 00:54:27,109 >> ইয়ান: দাঁড়ান, ইশ! কাট, কাট, কাট, কাটা. 1163 00:54:27,109 --> 00:54:30,130 ডগ, আপনি শুধু আস-দা না পারেন, আস-দা, আস-হ্যাঁ, একত্রীকরণ সাজানোর মাধ্যমে আপনার উপায়. 1164 00:54:30,130 --> 00:54:31,970 >> ডগ: আমি ঠিক করেছিলাম. 1165 00:54:31,970 --> 00:54:32,832 এটা ভাল. 1166 00:54:32,832 --> 00:54:33,540 আমরা যেতে ভাল. 1167 00:54:33,540 --> 00:54:34,760 এর মাত্র ঘূর্ণায়মান রাখা যাক. 1168 00:54:34,760 --> 00:54:35,380 তাই যাহাই হউক না কেন, 1169 00:54:35,380 --> 00:54:37,800 >> ইয়ান: আপনি ব্যাখ্যা করতে হবে এটা আরো সম্পূর্ণরূপে যে বেশী. 1170 00:54:37,800 --> 00:54:39,999 যে শুধু যথেষ্ট নয়. 1171 00:54:39,999 --> 00:54:41,790 ডগ: ইয়ান, আমরা না এক ফিরে যেতে হবে. 1172 00:54:41,790 --> 00:54:42,350 এটা ভাল. 1173 00:54:42,350 --> 00:54:45,690 তাই যাহাই হউক না কেন, আমরা merge-- অগ্রসর যদি ইয়ান, আমরা চিত্রগ্রহণ মাঝখানে আছেন. 1174 00:54:45,690 --> 00:54:46,612 >> ইয়ান: আমি জানি. 1175 00:54:46,612 --> 00:54:49,320 আর আমরা শুধু আস-দা না পারেন, আস-দা, পুরো প্রক্রিয়ার মাধ্যমে আস-হ্যাঁ,. 1176 00:54:49,320 --> 00:54:52,200 আপনি কিভাবে ব্যাখ্যা করতে হবে দুই পক্ষই একসাথে মার্জ পেতে. 1177 00:54:52,200 --> 00:54:53,570 >> ডগ: কিন্তু আমরা ইতিমধ্যেই করেছি ব্যাখ্যা কিভাবে দুই sides-- 1178 00:54:53,570 --> 00:54:55,321 >> ইয়ান: আপনি শুধু দেখানো করেছি তাদের একটি একত্রীকরণ অ্যারে. 1179 00:54:55,321 --> 00:54:56,486 ডগ: তারা প্রসেস জানা. 1180 00:54:56,486 --> 00:54:57,172 তারা ভাল আছে. 1181 00:54:57,172 --> 00:54:58,380 আমরা এটা ধরে দশ গুণ সর্বস্বান্ত করেছি. 1182 00:54:58,380 --> 00:55:00,330 >> ইয়ান: আপনি এটা উপর রাইট এড়ানো. 1183 00:55:00,330 --> 00:55:03,360 আমরা এক ফিরে যাচ্ছেন, আপনি এটি উপর আপনি আস-হ্যাঁ, আস-দা না পারেন. 1184 00:55:03,360 --> 00:55:05,480 ফিরে এক ঠিক আছে,. 1185 00:55:05,480 --> 00:55:07,833 >> ডগ: আমি ফিরে যেতে হবে স্লাইড সব দিয়ে? 1186 00:55:07,833 --> 00:55:08,332 আমার ঈশ্বর. 1187 00:55:08,332 --> 00:55:11,008 1188 00:55:11,008 --> 00:55:13,004 এটা ষষ্ঠ সময়, ইয়ান মত. 1189 00:55:13,004 --> 00:55:13,940 এটা ভাল. 1190 00:55:13,940 --> 00:55:15,200 >> ইয়ান: ঠিক আছে. 1191 00:55:15,200 --> 00:55:16,590 তুমি প্রস্তুত? 1192 00:55:16,590 --> 00:55:17,400 গ্রেট. 1193 00:55:17,400 --> 00:55:18,950 কর্ম.