نمایش نتایج 1 تا 13 از 13

نام تاپیک: حل یک مسئله و طراحی یک الگوریتم

  1. #1
    کاربر دائمی آواتار sara_aryanfar
    تاریخ عضویت
    فروردین 1390
    محل زندگی
    جایی در ایران
    پست
    1,507

    حل یک مسئله و طراحی یک الگوریتم

    با سلام مسئله ما اینه

    500
    500
    500
    500
    300
    300
    200
    200
    200
    200
    200
    200
    100
    100
    100
    100
    100
    10
    10
    2
    2
    2
    2
    2

    داده های ما اعداد بالا هستن خب ما هر بار می خواهیم یه مقداری از این داده ها رو برداریم مثلا یه بار 5تا یه بار 3 تا حالا ما می خواهیم اعداد بزرگتر شانس حضور بیشتری داشته باشن نسبت به اعداد کوچتر در واقع درصد حضور این اعداد بزرگتر با توجه به عددش تعیین بشه و هرچه عدد بزرگتر شانسش بیشتر چطور می تونیم اینکار رو انجام بدیم

  2. #2

    نقل قول: حل یک مسئله و طراحی یک الگوریتم

    اگه تعداد مثل حالت بالا کم باشه میتونید اون هایی که بالا تر هستند رو تکرار کنید به مقداری که میخواید تا شانسشون N درصد بره بالا ...
    البته یه راه اصولی تر هم اینه که بیاین و به عدد های بالای N ضریب 3 به اعداد بین N و X ضریب 2 و به اعداد زیر X ضریب یک بدید (برای حالت 3 انتخاب) حالا باز اول یک رندم بین سری با ضریب 3 و یک بار یک رندم برای سری با ضریب 2 و 3 و یک باز هم برای سری با ضریب 1 2 3 اینطوری دفعات تکرار اعداد بالا و شانسشون بیشتر میشه

  3. #3
    کاربر دائمی آواتار mehdy.programmer
    تاریخ عضویت
    خرداد 1391
    محل زندگی
    from Sanandaj lives in Tehran
    سن
    28
    پست
    254

    نقل قول: حل یک مسئله و طراحی یک الگوریتم

    یه چند تا سوال...

    تا چه حد می خوای شانس رو بالا ببری؟

    اون عددهایی که تکرار شدن متمایز اند یا نه؟

    داده ها همیشه ایناست یا نه؟

  4. #4
    کاربر دائمی آواتار sara_aryanfar
    تاریخ عضویت
    فروردین 1390
    محل زندگی
    جایی در ایران
    پست
    1,507

    نقل قول: حل یک مسئله و طراحی یک الگوریتم

    داده ها این تعداد نیستن خیلی بیشترن مثلا فرض کنید 500 تا ارزش داده ها هم همون اعداد هستش اعدادی که تکرار شدن داده متمایزی هستند اما ارزش اونا یکسان هست ممکنه هر عددی با هر تعداد تکرار در اونجا قرار بگبره بنابر این یه راه کار می خواد که شانس هر کدوم با توجه به ارزش خودش تعیین بشه مثلا داده هایی با مقدار 1000 فرضا 50 درصد شانس حضور در بین 3 رکوردی که می خواهیم انتخاب کنیم دارن و الی آخرمشکل من اینه چطور این شانس رو برای هر رکورد تعیین کنم و چطور انتخاب رو انجام دهم

  5. #5
    کاربر دائمی آواتار mehdy.programmer
    تاریخ عضویت
    خرداد 1391
    محل زندگی
    from Sanandaj lives in Tehran
    سن
    28
    پست
    254

    نقل قول: حل یک مسئله و طراحی یک الگوریتم

    خوب ولی جواب سوال اولمو ندادی! تا چه حد می خوای شانس رو بالا ببری؟ مثلا میشه شانس 500 رو 40 % یا 60% یا 90% در نظر گرفت!!!! تا چه حد میخوای شانس بالا بره؟ و اینکه اعداد زیادن یا نه؟ (برای اینکه از تکرار استفاده بشه یا نه)

  6. #6
    کاربر دائمی آواتار sara_aryanfar
    تاریخ عضویت
    فروردین 1390
    محل زندگی
    جایی در ایران
    پست
    1,507

    نقل قول: حل یک مسئله و طراحی یک الگوریتم

    شانس اعداد با اندازه اونا باید رابطه مستقیم داشته باشه تعداد اعداد زیاده

  7. #7
    کاربر دائمی آواتار mehdy.programmer
    تاریخ عضویت
    خرداد 1391
    محل زندگی
    from Sanandaj lives in Tehran
    سن
    28
    پست
    254

    نقل قول: حل یک مسئله و طراحی یک الگوریتم

    خوب این ایده ی منه! ببین بدردت میخوره یا نه؟

    همه ی اعداد رو جمع کن بعد هر عدد رو تقسیم بر مجموع کل کن و عدد بدست اومده میشه شانس اون عدد

    sum=n1+n2+n3+...
    Cn1=n1/sum

  8. #8
    کاربر دائمی آواتار sara_aryanfar
    تاریخ عضویت
    فروردین 1390
    محل زندگی
    جایی در ایران
    پست
    1,507

    نقل قول: حل یک مسئله و طراحی یک الگوریتم

    خب اونوقت نحوه انتخاب چطوری هست یعنی فرض کن ما قرار هست 3 تا از اینا رو انتخاب کنیم از این شانس چطور استفاده کنیم؟

  9. #9
    کاربر تازه وارد آواتار omidrajabitiz
    تاریخ عضویت
    فروردین 1389
    محل زندگی
    مرکزی
    پست
    46

    Smile نقل قول: حل یک مسئله و طراحی یک الگوریتم

    همانطور که mehdy.programmer گفتند باید عمل کنید.
    این روش در الگوریتم ژنتیک به چرخ رولت معروف است.

    روش انتخاب چرخ رولت: در اين روش فرض می‌شود افراد جمعيت روي يک چرخ رولت تصوير شده‌اند که به هر فرد فضايي متناسب با تابع برازندگی آن تخصيص داده شده است. مشابه با عمل چرخش چرخ رولت براي انتخاب تصادفي يک فضا، يک عدد تصادفي بين صفر و مجموع شايستگي تمامي افراد در نسل موجود توليد می‌شود. اگر افراد بر اساس ميزان برازندگی‌شان به طور صعودي مرتب شوند، اولين فردي که ميزان برازندگی تجمعی‌اش بزرگ‌تر يا مساوي عدد تصادفي توليد شده، باشد انتخاب می‌شود. مکانیزم این روش با یک مثال در شکل زیر آورده شده است. در این مثال در صورتي که عدد تصادفي انتخاب شده 46 باشد، کروموزوم شماره 3 انتخاب می‌شود.

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

  10. #10

    نقل قول: حل یک مسئله و طراحی یک الگوریتم

    با این کد شما می تونید عدد مورد نظر رو انتخاب کنید ابتدا

    using System.Linq;


    وسپس

    int[] items = new int[] {500,500,500,500,300,300,200,200,200,200,200,200,1 00,100,100,100,100,10,10,2,2,2,2,2};
    ulong sum=0;
    var cumhistogram=items.GroupBy(i => i).OrderBy(i=>i.Key).Select(g => new {Item = g.Key,Count = sum+=(ulong)(g.Count()*g.Key)}).ToList();
    Random rr = new Random(DateTime.Now.Millisecond);
    ulong maxval=cumhistogram.Last().Count;

    برای انتخاب یک عدد از میان آرایه با احتمالی که اشاره کردید از متغیر selected استفاده کنید:

    int selected =cumhistogram.FirstOrDefault(c => c.Count>=(rr.NextDouble()*maxval)).Item;
    آخرین ویرایش به وسیله rahnema1 : دوشنبه 04 آذر 1392 در 05:45 صبح

  11. #11
    کاربر دائمی آواتار mehdy.programmer
    تاریخ عضویت
    خرداد 1391
    محل زندگی
    from Sanandaj lives in Tehran
    سن
    28
    پست
    254

    نقل قول: حل یک مسئله و طراحی یک الگوریتم

    خوب شما این اعداد رو داخل یه آرایه قرار بده و به اندازه شانسشون تکرارشون کن، مثلا شانس 300، 8 هست، توی آرایه 8 بار 300 رو بنویس و بعد به صورت تصادفی یه عدد رو از آرایه بخون! با تکرار شدن اعداد تو آرایه شانس اعمال میشه! فقط در مورد اینکه از اول مثلا چند تا 500 تکرار شده و متمایز هم هستن مطمئن نیستم درست جواب بده یا نه!؟ یعنی در اصل نمی دونم این روش به درد مسئله شما می خوره یا نه ؟!

  12. #12

    نقل قول: حل یک مسئله و طراحی یک الگوریتم

    نقل قول نوشته شده توسط mehdy.programmer مشاهده تاپیک
    خوب شما این اعداد رو داخل یه آرایه قرار بده و به اندازه شانسشون تکرارشون کن، مثلا شانس 300، 8 هست، توی آرایه 8 بار 300 رو بنویس و بعد به صورت تصادفی یه عدد رو از آرایه بخون! با تکرار شدن اعداد تو آرایه شانس اعمال میشه! فقط در مورد اینکه از اول مثلا چند تا 500 تکرار شده و متمایز هم هستن مطمئن نیستم درست جواب بده یا نه!؟ یعنی در اصل نمی دونم این روش به درد مسئله شما می خوره یا نه ؟!
    درسته این آسون ترین روشه و درواقع عمل هم میکنه اما اگه تعداد ورودی ها چند صد هزار تا یا حتی چند صد میلیون و میلیارد باشه و هرکدوم میانگین 5 بار تکرار بشه واقعا حجم کار میره بالا ....
    همون روش ضریب احتمال خیلی بهتر عمل میکنه تو این موارد با یه ارایه دو بعدی کار راه میوفته
    برای مثال
    ضبیب 500 میشه 8 و ضریب 3 هم میشه 5 و ضریب 100 میشه 3 و ضریب 10 1 حالا با این روش به راحتی با توجه به تعداد رندوم ها محدوده ضریب تعریف کنیم مثلا برای 3 رندوم(مثاله) اول یه رندوم بین ضریب های بالای 6 و یک باز با ضریب های بلای 3 و یک بار هم بین همه ....
    همچنین تو این روش میشه داده هارو غربال کرد و درواقع مثلا اگر دو 300 و هرکدوم ضریب 5 دارند میتونیم یکی رو حذف کرده و یک 300 با ضریب 10 نگه داریم تا شانس بالا بره ....

  13. #13
    کاربر دائمی آواتار mehdy.programmer
    تاریخ عضویت
    خرداد 1391
    محل زندگی
    from Sanandaj lives in Tehran
    سن
    28
    پست
    254

    نقل قول: حل یک مسئله و طراحی یک الگوریتم

    خوب درسته، برای داده های زیاد روش مناسبی نیست!

    بسته به داده ها و نیاز مسئله، روش های مختلفی رو میشه پیاده سازی کرد.

تاپیک های مشابه

  1. طراحی یک الگوریتم برای Voice recognition و خواندن متن از طریق کامپیوتر
    نوشته شده توسط Adriaan در بخش الگوریتم، کامپایلر، هوش مصنوعی و ساختمان داده ها
    پاسخ: 8
    آخرین پست: شنبه 28 دی 1392, 18:56 عصر
  2. درخواست طراحی پروژه الگوریتم
    نوشته شده توسط bndclub در بخش الگوریتم، کامپایلر، هوش مصنوعی و ساختمان داده ها
    پاسخ: 0
    آخرین پست: یک شنبه 05 خرداد 1392, 14:32 عصر
  3. سوال: کمک برای طراحی یک الگوریتم ساده
    نوشته شده توسط jalil_m در بخش C#‎‎
    پاسخ: 7
    آخرین پست: یک شنبه 03 اردیبهشت 1391, 21:55 عصر
  4. سوال: کمک در طراحی یک الگوریتم
    نوشته شده توسط esrafilhashemi در بخش برنامه نویسی با زبان C و ++C
    پاسخ: 0
    آخرین پست: سه شنبه 26 آذر 1387, 15:39 عصر
  5. نحوه طراحی و الگوریتم نویسی برنامه جدولساز
    نوشته شده توسط Mahdiseif در بخش الگوریتم، کامپایلر، هوش مصنوعی و ساختمان داده ها
    پاسخ: 6
    آخرین پست: سه شنبه 18 آذر 1382, 09:28 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •