زمان کنونی: ۱۹ خرداد ۱۴۰۳, ۰۴:۰۷ ب.ظ مهمان گرامی به انجمن مانشت خوش آمدید. برای استفاده از تمامی امکانات انجمن می‌توانید عضو شوید.
گزینه‌های شما (ورودثبت نام)

پیدا کردن عنصر گمشده در بین ۱-n

ارسال:
  

lonelyforever پرسیده:

پیدا کردن عنصر گمشده در بین ۱-n

فرض کنید آریه ای با n عنصر که با اعداد یک تا n پر شده‌، هر عنصر یکبار استفاده شده است. یکی از عناصر را آرایه نیست بر اساس چه الگوریتمی و با چه مرتبه اجرای میشه اون گمشده رو پیدا کرد؟
لطفا کمکم کنید دوستان

۰
ارسال:
  

Aurora پاسخ داده:

RE: پیدا کردن عنصر گمشده در بین ۱-n

در کتاب مقسمی دیدم که این طوری حل کرده‌: هر عنصر را از لیست می خوانیم و در لیست دیگه ای به جای هر عنصر true یا false قرار می دهیم. مثلا لیست ۱و۲و۳و۴و۵ داریم که ۳ گم شده.
پس داریم ۱۲۴۵
یکی یکی از سر لیست می خوانیم . پس فقط یک عنصر هست که false شده پس همون عنصر گم شده است. با جستجوی خطی برای یافتن عنصر FALSE می توان به جواب رسید.


یک راه دیگه هم هست:
جمع اعداد یک تا N را حساب کنید . بعد جمع اعداد موجود در لیست هم حساب کنید. این دو را ازهم کم کنید میشه عنصر حذف شده.
که میشه از مرتبه n
راه دیگر:
یکجا هم دیدم که سوال را این طوری حل کرده . xor اعداد ۱ تا n را حساب می کنیم. xor اعداد موجود را هم حساب می کنیم. دوتا عدد حاصل از دو xor را باهم xor می کنیم. جواب xor همان عنصر گم شده است. این هم از مرتبه n است.

برای لیست مرتب این مرتبه به logn هم می رسد ولی لیست این سوال مرتب نیست.

ارسال:
  

Masoud05 پاسخ داده:

RE: پیدا کردن عنصر گمشده در بین ۱-n

(۲۴ بهمن ۱۳۹۰ ۰۲:۳۰ ب.ظ)saeedeh123 نوشته شده توسط:  یک راه دیگه هم هست:
جمع اعداد یک تا N را حساب کنید . بعد جمع اعداد موجود در لیست هم حساب کنید. این دو را ازهم کم کنید میشه عنصر حذف شده.
که میشه از مرتبه n
راه دیگر:
یکجا هم دیدم که سوال را این طوری حل کرده . xor اعداد ۱ تا n را حساب می کنیم. xor اعداد موجود را هم حساب می کنیم. دوتا عدد حاصل از دو xor را باهم xor می کنیم. جواب xor همان عنصر گم شده است. این هم از مرتبه n است.

برای لیست مرتب این مرتبه به logn هم می رسد ولی لیست این سوال مرتب نیست.
یه تکنیک دیگه هم هست که فقط با بیت اعداد سر و کار داره اونم از مرتبه خطیه( برای این مسئله کلی راه راه کار خطی داریم )
در کل این تکنیکا بیشتر بچه های ACM دنبالش هستن . بعضی از این تکنیکا خیلی خفن هست و واقعا هوشمندانه طرح میشه Smile
کلا بچه های که تو این زمینه کار میکنن خیلی سریع قدرت پردازش مغزشون بالا میره و خیلی خلاق میشن Smile
یافتن تمامی ارسال‌های این کاربر

۰
ارسال:
  

variant20002000 پاسخ داده:

پیدا کردن عنصر گمشده در بین ۱-n

جمع اعداد یک تا N را حساب کنید . بعد جمع اعداد موجود در لیست هم حساب کنید. این دو را ازهم کم کنید میشه عنصر حذف شده.
این راه حل به دلیل اینکه ثابت کمتری داره از بقیه سریعتره .... ممنون از پاسختون...! Big Grin

۰
ارسال:
  

fatima1537 پاسخ داده:

پیدا کردن عنصر گمشده در بین ۱-n

اگر فرض کنیم آرایه نامرتبه و اون عدد گمشده هم مشخص نیست(یعنی نمیدونیم چه عددیه و در چه محلی از آرایه بوده) مرتبه اجرایی الگوریتم از (O(n خواهد بود.چون برای پیدا کردن عنصر گمشده است باید کل آرایه جستجو شود

ارسال:
  

lonelyforever پاسخ داده:

RE: پیدا کردن عنصر گمشده در بین ۱-n

(۲۴ بهمن ۱۳۹۰ ۰۲:۳۳ ق.ظ)fatima1537 نوشته شده توسط:  اگر فرض کنیم آرایه نامرتبه و اون عدد گمشده هم مشخص نیست(یعنی نمیدونیم چه عددیه و در چه محلی از آرایه بوده) مرتبه اجرایی الگوریتم از (O(n خواهد بود.چون برای پیدا کردن عنصر گمشده است باید کل آرایه جستجو شود

نکته کار اینجاست که ما نمی دونیم اون عنصر کدومه که دنبالش سرچ کنیم.
یعنی یکی گم شده . باید پیدا کنیم کی گم شده
یافتن تمامی ارسال‌های این کاربر

۰
ارسال:
  

fatima1537 پاسخ داده:

پیدا کردن عنصر گمشده در بین ۱-n

اگر ندونیم چه عنصری گم شده باید اول آرایه رو به صورت غیر نزولی مرتب کرد که از مرتبه nlogn میشه(به روش تقسیم و غلبه) و بعد هر عنصر در اندیس مربوط به خودش قرار میگیره مگر اینکه عنصری گم شده باشه(که باعث میشه بقیه در یک خانه با اندیس کمتر قرار گرفته باشند)
برای پیدا کردن عنصر گمشده باید آرایه از ابتدا جستجو بشه و شماره اندیس با محتوای خانه آرایه مقایسه بشه.اگر محتوا کمتر از اندیس بود همون عنصر گمشده است .که جستجو هم حداکثر از مرتبه( O(n است
ودر کل مرتبه زمانی الگوریتم میشه از مرتبه n log n

۰
ارسال:
  

fatima1537 پاسخ داده:

پیدا کردن عنصر گمشده در بین ۱-n

من روشی که به ذهنم رسیده بود رو گفتم.
ولی روشهایی هم که نوشتید جالبن



موضوع‌های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
  بین پردازش تصویر و داده کاوی موندم کدوم یکی رو برای پایان نامه انتخاب کنم؟ raheleh1393 ۵ ۸,۱۵۵ ۰۱ دى ۱۴۰۰ ۰۲:۴۸ ب.ظ
آخرین ارسال: golkhorami
  پیدا کردن دستگیره manager_66 ۵ ۴,۶۲۳ ۲۸ آذر ۱۴۰۰ ۱۲:۴۴ ب.ظ
آخرین ارسال: blackhalo1989
  کدام زبان برای هوش مصنوعی بهتر است؟ فرق بین زبان های هوش مصنوعی چیست؟ azam2075 ۳ ۵,۶۵۲ ۱۴ مهر ۱۴۰۰ ۰۷:۲۱ ب.ظ
آخرین ارسال: علیصا
  تا به حال شده خدا فرصت زندگی کردن دوباره رو بهت بده؟مرگ از جلوی چشمات رد شده؟ abraham ۲۱ ۱۵,۱۴۷ ۲۰ دى ۱۳۹۹ ۱۰:۵۶ ب.ظ
آخرین ارسال: raam
  جایی برای پیدا کردن توابع آماده جاوااسکریپت f.b ۷ ۴,۱۹۰ ۲۰ آذر ۱۳۹۹ ۰۴:۰۸ ب.ظ
آخرین ارسال: calm
  پیدا کردن موضوع پایان نامه k1.technology ۲ ۷,۸۶۸ ۲۱ خرداد ۱۳۹۹ ۱۲:۵۴ ب.ظ
آخرین ارسال: bankabzar
  رنگ کردن رئوس گراف( ارشد علوم کامپیوتر ۹۸ ) ss311 ۰ ۱,۹۷۶ ۰۳ اسفند ۱۳۹۸ ۱۲:۴۳ ب.ظ
آخرین ارسال: ss311
  مسدود کردن سایت و نرم افزار تلگرام wiisconsin ۶ ۶,۷۳۲ ۲۴ بهمن ۱۳۹۸ ۰۵:۳۸ ق.ظ
آخرین ارسال: one hacker alone
  جستجو و ارتباط بین جداول aryana25000 ۰ ۱,۸۶۳ ۰۳ آبان ۱۳۹۸ ۱۰:۳۸ ب.ظ
آخرین ارسال: aryana25000
  ارتباط دائم بین سیستم استنتاج فازی و یک نرم افزار دیگر fa_karoon ۱ ۲,۴۰۳ ۱۵ اردیبهشت ۱۳۹۸ ۱۱:۱۲ ق.ظ
آخرین ارسال: fa_karoon

پرش به انجمن:

Can I see some ID?

به خاطر سپاری رمز Cancel

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close

رمزت رو فراموش کردی؟

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. close