از پارسکدرز بیشترین بهره را ببرید و رویای کاری خود را زندگی کنید.
یک سال پیش منتشر شده
تعداد بازدید: 74
کد پروژه: 517865
شرح پروژه
سلام
پروژه دانشجویی انجام میدید؟
ممنون
درس الگوریتم و ساختمان داده چندتا تکلیفه چند سری میخوام مزاحمتون شم مقطع لیسانس مهندسی کامپیوتر
هنوز تکلیفامونو ندادن ولی این هفته میاد
ساخت یک ساختار داده که به مقدار کمی از حافظه اصلی نیاز دارد اما بتواند به سرعت در یک فایل بزرگ در حافظه ثانویه جستجو کند
کار با متون ذخیرهشده با کدگذاریهای مختلف
یک کنکوردانس ساختار دادهای است که در آن میتوانید کلمات را جستجو کرده و تمامی موارد استفاده از آن کلمه را همراه با کلمات نزدیک به آن در متن مشاهده کنید. این ابزار برای زبانشناسانی که میخواهند نحوه استفاده از کلمات مختلف در زبان را بررسی کنند، بسیار مفید است.
در این تمرین، شما باید برنامهای بنویسید که با توجه به یک متن، یک ساختار داده کنکوردانس در سیستم فایل ایجاد کند و همچنین برنامهای که از کاربر درباره یک کلمه پرسیده، آن را جستجو کند و تمامی موارد استفاده از آن را در متن نشان دهد. مهم است که هر جستجو خیلی سریع انجام شود، بنابراین برنامه اول باید ساختار داده کنکوردانس را به گونهای ذخیره کند که جستجو سریع انجام شود.
الزامات
کنکوردانس نباید بین حروف بزرگ و کوچک تفاوت قائل شود. کاربر باید بتواند تمامی سوالات جستجو را با حروف کوچک، بزرگ یا ترکیبی از آنها بنویسد.
ساختار داده کنکوردانس باید به گونهای باشد که بتواند با حداقل حافظه به سرعت در فایلهای بزرگ جستجو کند و به صورت موثری کار کند. همچنین برنامه جستجو باید نتایج جستجو را به صورت مناسب و با رعایت شرایط بیانشده در سند ارائه دهد
توضیح وظایف:
1. برنامهنویسی: شما باید برنامهای بنویسید که یک ساختار داده کنکوردانس را از یک متن ایجاد کند. همچنین، برنامه دیگری باید نوشته شود که بتواند کلمات را جستجو کرده و تمامی موارد استفاده از آن کلمه را در متن نمایش دهد.
برنامه ساخت نیازی ندارد بسیار سریع باشد زیرا فقط یک بار اجرا میشود، اما باید به اندازه کافی کارآمد باشد تا بتواند ساختار داده کنکوردانس را در زمان معقولی ایجاد کند. نباید بیش از سه دقیقه طول بکشد تا ساختار داده کنکوردانس بر روی یک رایانه Ubuntu ایجاد شود (علاوه بر زمان اجرای tokenizer و sort).
• خروجی برنامه جستجو باید با یک خط آغاز شود که تعداد موارد استفاده را نشان میدهد. سپس هر مورد از کلمه باید در هر خط با مثلاً 30 کاراکتر قبل و 30 کاراکتر بعد ارائه شود. جایگزین کردن شکستن خطوط با فاصله. اگر بیش از 25 مورد وجود داشته باشد، برنامه باید از کاربر بپرسد آیا میخواهد موارد استفاده روی صفحه نمایش داده شود یا خیر.
باید بتوانید یک کلمه مانند "bil" را از طریق ترمینال جستجو کنید.
• برنامه جستجو نباید کل متن را بخواند و نباید از حافظه داخلی زیادی استفاده کند. نیازهای حافظه داخلی نباید با تعداد کلمات متمایز در متن اصلی افزایش یابد (به عبارت دیگر، پیچیدگی حافظه داخلی باید ثابت باشد). بنابراین باید از هشکدگذاری تنبل (lazy hashing) به عنوان ساختار داده استفاده کنید. در زمان ارائه، باید بتوانید اثبات کنید که پیچیدگی حافظه داخلی برای برنامه جستجو ثابت است.
• سعی کنید فقط از جستجوی خطی در فایل شاخص استفاده کنید و با استفاده از جستجوی باینری ابتدا جستجو کنید تا فاصله جستجو کوچک شود و سپس جستجوی خطی (مشاهده کد شبه در درس 2) را ببینید که آیا تفاوتی در زمان اجرا برای برخی از کلمات جستجو ایجاد میکند یا خیر. برای چه نوع کلمات جستجو باید به طور تئوری سریعتر باشد با استفاده از جستجوی باینری؟ میتوانید زمان اجرا را با استفاده از فرمان یونیکس time (نوشتن time در ابتدای فرمانی که برنامه جستجو را شروع میکند) اندازهگیری کنید و به زمان برای کاربر نگاه کنید
با java
1733
مهارت ها و تخصص های مورد نیاز
مبلغ پروژه
1,000,000 تومان
مهلت برای انجام
3روز
وضعیت مناقصه
انجام شده
درباره کارفرما
عضویت سیزده سال پیش
نیاز به استخدام فریلنسر یا سفارش پروژه مشابه دارید؟
قادر به انجام این پروژه هستید؟
متأسفانه مهلت ارسال پیشنهاد این پروژه به پایان رسیده و پروژه بسته شده است؛ اما فرصتهای متعددی در سایت موجود میباشد.
به رایگان یک حساب کاربری بسازید
مهارتها و تخصصهای خود را ثبت کنید، رزومه و نمونهکارهای خود را نشان دهید و سوابق کاری خود را شرح دهید.
به شیوهای که دوست دارید کار کنید
برای پروژههای دلخواه در زمان دلخواه پیشنهاد قیمت خود را ثبت کنید و به فرصتهای شغلی منحصر به فرد دسترسی پیدا کنید.
با اطمینان دستمزد دریافت کنید
از زمان شروع کار تا انتهای کار به امنیت مالی شما کمک خواهیم کرد. وجه پروژه را از ابتدای کار به امانت در سایت نگه خواهیم داشت تا تضمین شودکه بعد از تحویل کار دستمزد شما پرداخت خواهد شد.
میخواهید شروع به کار کنید؟
یک حساب کاربری بسازید
بهترین مشاغل فریلنسری را پیدا کنید
رشد شغلی شما به راحتی ایجاد یک حساب کاربری رایگان و یافتن کار (پروژه) متناسب با مهارتهای شما
است.
پیدا کردن کار (پروژه)
تماشای دمو روش کار