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

نام تاپیک: پاسخ الگوریتم مهم

  1. #1
    کاربر دائمی آواتار BANKER
    تاریخ عضویت
    دی 1386
    محل زندگی
    تهران
    پست
    176

    پاسخ الگوریتم مهم

    سلام بر همه دوستان
    این الگوریتمی پاسخ مهمی دارد هرکسی که توان انجام آن را دارد پاسخ را اعلام کند...

    الگوریتمی بنویسید که آرایه ای به طول n را از ورودی بگیرد و آرایه ای به طول n تولید کند به نحوی که هر خانه خروجی برابر حاصلظرب تمامی خانه های ورودی به غیر از خانه متناظر باشد
    عکس های ضمیمه عکس های ضمیمه

  2. #2

    نقل قول: پاسخ الگوریتم مهم

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

    public static int[] MyAlgorythem (int[] array)
    {
    int[] Result = new int[array.length];

    for (int i=0; i < array.length; i++)
    {
    int num = array[i];
    int? mlt;
    foreach (int number in array)
    {
    if (number != num) mlt = (mlt == null)? number: mlt * number;
    }
    Result[i] = (mlt == null)? 0: mlt;
    }
    return Result;
    }

  3. #3
    کاربر دائمی آواتار BANKER
    تاریخ عضویت
    دی 1386
    محل زندگی
    تهران
    پست
    176

    نقل قول: پاسخ الگوریتم مهم

    بسیار ممنون از پاسخ گویی شما
    میشه لزفا یه توضیحاتی هم در باره الگوریتمی که نوشتید و روند اون بگید.
    و دوم اینکه
    int? mlt مفهوم این چیه چرا علامت سوال گذاشتید

    public static int[] MyAlgorythem (int[] array)
    {
    int[] Result = new int[array.length];

    for (int i=0; i < array.length; i++)
    {
    int num = array[i];
    int? mlt;
    foreach (int number in array)
    {
    if (number != num) mlt = (mlt == null)? number: mlt * number;
    }
    Result[i] = (mlt == null)? 0: mlt;
    }
    return Result;
    }

  4. #4

    نقل قول: پاسخ الگوریتم مهم

    نقل قول نوشته شده توسط BANKER مشاهده تاپیک
    بسیار ممنون از پاسخ گویی شما
    میشه لزفا یه توضیحاتی هم در باره الگوریتمی که نوشتید و روند اون بگید.
    و دوم اینکه
    int? mlt مفهوم این چیه چرا علامت سوال گذاشتید

    public static int[] MyAlgorythem (int[] array)
    {
    int[] Result = new int[array.length];

    for (int i=0; i < array.length; i++)
    {
    int num = array[i];
    int? mlt;
    foreach (int number in array)
    {
    if (number != num) mlt = (mlt == null)? number: mlt * number;
    }
    Result[i] = (mlt == null)? 0: mlt;
    }
    return Result;
    }
    وقتی متغیری را به این صورت ?int تعریف میکنید به صورت ضمنی دارید از یک کلاس ژنریک Nullable به نوع داده تون اضافه میکنید! که امکانات زیادی را به primitive data که تعریف کردید میده یکیش اینه که میتونید با اشاره گر null متغیر تون را چک کنید...
    الگوریتمی هم که دوستمون نوشتن کاملا واضح هست
    در حلقه اول مقدار اولین عضو آرایه ورودی را در یک متغیر موقت ذخیره میکنه!
    در حلقه بعدی حاصلضرب تمام عضوهای آرایه به غیر از مقداری که در متغیر موقت ذخیره کرده اند را در یک متغیر به نام mlt ذخیره میکنه!
    بعد از حلقه دوم هم در اندیس برابر حلقه اول مقدار حاصلضرب را می نویسه!
    که البته به نظر میاد با اون چیزی که شما نوشتید روی کاغذ و ضمیمه کردید کاملا منتفاوت هست!

  5. #5

    نقل قول: پاسخ الگوریتم مهم

    کد بالا یکم ایراد داشت ولی خب تقریبا درسته، من اون کد رو بدون استفاده از کامپایلر نوشته بودم.
    این کد درسته:
    public static int[] MyAlgorythem(int[] array)        {
    int[] Result = new int[array.Length];


    for (int i = 0; i < array.Length; i++)
    {
    int num = array[i];
    int? mlt = null;
    foreach (int number in array)
    {
    if (number != num) mlt = (!mlt.HasValue) ? number : mlt * number;
    }
    Result[i] = (mlt.HasValue)? mlt.Value: 0;
    }
    return Result;
    }


    توضیحات:
    اول از همه یک متد استاتیک تعریف کردیم که آرایه ای از جنس int میگیره و آرایه ای از جنس int برمیگردونه.
    خط بعدی یک آرایه تعریف کردیم که اندازش با اندازه ی آرایه ورودی تعیین میشه.
    بعد یه حلقه for برای پیمایش آرایه ورودی
    int? mlt یه مقدار نال پذیر برای محاسبه جواب حلقه
    دوباره حلقه foreach برای پیمایش آرایه ورودی که داخل این حلقه یک شرط قرار دادیم که اگر عدد برابر عدد مورد نظر ما نبود عمل ضرب رو انجام بده
    در آخر هم آرایه ای که به عنوان جواب تعریف کردیم و پرش کردیم برای خروجی متد برمی گردونیم.
    پروژه VS2017 هم ضمیمه می کنم.
    این تست ها:

    int[] Test1 = Class1.MyAlgorythem(new int[] { 3, 7, 2, 3, 4, 2 }); //Test1 = {112, 144, 252, 112, 252, 252}
    int[] Test2 = Class1.MyAlgorythem(new int[] { 1, 1, 1, 1 }); //Test2 = {0, 0, 0, 0}
    int[] Test3 = Class1.MyAlgorythem(new int[] { 1 }); //Test3 = {0}
    int[] Test4 = Class1.MyAlgorythem(new int[] { }); //Test4 = int[0]
    int[] Test5 = Class1.MyAlgorythem(new int[] { 3, 7 }); //Test5 = {7, 3}
    فایل های ضمیمه فایل های ضمیمه

  6. #6
    کاربر دائمی آواتار BANKER
    تاریخ عضویت
    دی 1386
    محل زندگی
    تهران
    پست
    176

    نقل قول: پاسخ الگوریتم مهم

    سپاسگزارم از همه شما دوستان
    فقط اینکه صورت مسئله ای که داده شده منظور این بوده که محتوای هر خانه ای ضرب در محتوای خانه دوم شد جوابش رو در آرایه ای با شماره خونه غیر متناظر از از شماره خونه های ضرب شده قرر بدیم
    مثلا خونه 0 ضرب در خانه 1 جوابش ریخته بشه در خونه 2 از آرایه خروجی
    مثلا خونه 1 ضرب در خانه 2 جوابش ریخته بشه در خونه 0 از آرایه خروجی
    مثلا خونه 2 ضرب در خانه 0 جوابش ریخته بشه در خونه 1 از آرایه خروجی

  7. #7

    نقل قول: پاسخ الگوریتم مهم

    من عذرخواهی می کنم که سوال رو خوب نخوندم و متوجه نشدم، کدی که شما میگید به این شکل هست:

    public static int[] MyAlgorythem(int[] array)
    {
    if (array.Length == 1) return array;
    int[] Result = new int[array.Length];
    for (int i = 0; i < array.Length; i++)
    {
    int mlt = 1;
    for (int j = 0; j < array.Length; j++)
    {
    if (i != j) mlt *= array[j];
    }
    Result[i] = mlt;
    }
    return Result;
    }


    تست ها:

    int[] Test1 = Class1.MyAlgorythem(new int[] { 3, 7, 2, 3, 4, 2 }); //Test1 = {336, 144, 504, 336, 252, 504}
    int[] Test2 = Class1.MyAlgorythem(new int[] { 1, 1, 1, 1 }); //Test2 = {1, 1, 1, 1}
    int[] Test3 = Class1.MyAlgorythem(new int[] { 5 }); //Test3 = {5}
    int[] Test4 = Class1.MyAlgorythem(new int[] { }); //Test4 = int[0]
    int[] Test5 = Class1.MyAlgorythem(new int[] { 3, 7 }); //Test5 = {7, 3}

  8. #8
    کاربر دائمی آواتار BANKER
    تاریخ عضویت
    دی 1386
    محل زندگی
    تهران
    پست
    176

    نقل قول: پاسخ الگوریتم مهم

    عید بر شما و همه دوستان عزیزم در این گروه مبارک باشه
    خیلی ممنون از لطف و توجه شما
    و
    اینکه اینقدر محبت و توجه نشون دادید

  9. #9
    کاربر دائمی آواتار BANKER
    تاریخ عضویت
    دی 1386
    محل زندگی
    تهران
    پست
    176

    نقل قول: پاسخ الگوریتم مهم

    ص.رت مسئله این رو میگه که اعضای یک آرایه که شامل سه خانه مثلا اگر باشند باید باهم جوری ضرب شوند که

    خانه 0 ام آرایه ورودی ضرب در خانه 1 ام آرایه ورودی شود و نتیجه در خانه دوم آرایه خروجی که غیر متناظر است (یعنی نه در خانه 2ام از آرایه خروجی و نه در خانه یکم از آرایه خروجی) قرار گیرد

    همچنین

    خانه 2 ام آرایه ورودی ضرب در خانه 0 ام آرایه ورودی شود و نتیجه در خانه یکم آرایه خروجی که غیر متناظر است(یعنی نه در خانه 1ام از آرایه خروجی و نه در خانه 0 از آرایه خروجی) قرار گیرد.

    همچنین

    خانه 1 ام آرایه ورودی ضرب در خانه 2 ام آرایه ورودی شود و نتیجه در خانه صفرم آرایه خروجی که غیر متناظر است(یعنی نه در خانه 1ام از آرایه خروجی و نه در خانه 2 از آرایه خروجی) قرار گیرد.

    پیچیدگی زمانی رو هم بی زحمت بفرمایید ممنون

    عکس های ضمیمه عکس های ضمیمه
    آخرین ویرایش به وسیله BANKER : پنج شنبه 08 شهریور 1397 در 23:03 عصر

  10. #10
    کاربر دائمی آواتار BANKER
    تاریخ عضویت
    دی 1386
    محل زندگی
    تهران
    پست
    176

    نقل قول: پاسخ الگوریتم مهم

    با سلام دوستان جواب مسیله مطرح شده گویا درست نیست!
    با توجه به توضیحات پیام ارسالی قبلی لطفا نسبت به حل مسئله اقدام فرمایید.
    باتشکر

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

  1. حرفه ای: مهم : برنامه نویسی جستجوی لیست پیوندی چند مقداری با الگوریتم BFS-BB
    نوشته شده توسط samadehghan در بخش ارزیابی نرم افزار
    پاسخ: 0
    آخرین پست: سه شنبه 18 فروردین 1394, 10:49 صبح
  2. سوال: مرجع معتبر برای معرفی الگوریتم های مهم و کاربردی
    نوشته شده توسط aghooshebahar در بخش الگوریتم، کامپایلر، هوش مصنوعی و ساختمان داده ها
    پاسخ: 0
    آخرین پست: دوشنبه 11 آذر 1392, 00:12 صبح
  3. معرفی الگوریتم رمزنگاری برای رمزکردن اطلاعات مهم
    نوشته شده توسط morteza_mokhtari در بخش ASP.NET Web Forms
    پاسخ: 11
    آخرین پست: سه شنبه 14 خرداد 1392, 22:52 عصر
  4. ايا اين نوع سرو مناسب است؟(مهم خواهشا پاسخ دهيد)
    نوشته شده توسط raptor11 در بخش شبکه و Networking‌
    پاسخ: 2
    آخرین پست: چهارشنبه 20 مهر 1390, 07:46 صبح
  5. پرسش و پاسخ
    نوشته شده توسط JavanSoft در بخش برنامه نویسی در Delphi
    پاسخ: 7
    آخرین پست: پنج شنبه 29 بهمن 1383, 00:56 صبح

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

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