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

نام تاپیک: الگوریتم نمایش جایگشت ها

  1. #1
    کاربر تازه وارد آواتار amin.m1993
    تاریخ عضویت
    بهمن 1390
    محل زندگی
    select city from iran
    پست
    61

    Exclamation الگوریتم نمایش جایگشت ها

    سلام.
    دوستان کسی هست که یه الگوریتم بازگشتی برای نمایش جایگشت های n عضوی یک مجموعه ی n عضوی بلد باشه؟
    البته من سرچ کردم اما یه کد توی VB پیدا کردم اما چون VB بلد نیستم چیزی نفهمیدم اگه نتونستید بنویسید لطفا کد زیر رو به C#‎‎ تبدیل کنید.
    ممنون
    Private Sub Command1_Click()
    Dim N As Long, A() As Long, I As Long
    N = Val(Text1.Text)
    ReDim A(1 To N)
    For I = 1 To N
    A(I) = I
    Next
    List1.Clear
    MySub A, 1, N
    End Sub

    Private Sub MySub(ByRef List() As Long, ByVal Index As Long, ByVal Count As Long)
    Dim Pos As Long, Temp As Long
    If Index > Count Then
    ShowList List, Count
    Exit Sub
    End If
    MySub List, Index + 1, Count
    For Pos = Index + 1 To Count
    Temp = List(Pos)
    List(Pos) = List(Index)
    List(Index) = Temp
    MySub List, Index + 1, Count
    List(Index) = List(Pos)
    List(Pos) = Temp
    Next
    End Sub

    Private Sub ShowList(ByRef List() As Long, ByVal Count As Long)
    Dim Index As Long, Str As String, Num As String
    For Index = 1 To Count
    Str = Str & Chr(64 + List(Index)) & " "
    Next
    Num = CStr(List1.ListCount + 1)
    Num = Space(4 - Len(Num)) & Num
    List1.AddItem Num & ") " & Str
    End Sub

  2. #2

    نقل قول: الگوریتم نمایش جایگشت ها

    این کد چندان ناواضح نیست. شما فقط با تابع MySub کار دارید که یه لیست رو می‌گیره (همون اعداد یک تا n هستش)، و دو تا پارامتر دیگه. اولین بار هم به صورت (MySub(A, 1, N فراخوانی شده که A لیست همون اعداد یک تا N هستش.



    private void MySub(long[] list, long Index, long Count)
    {
    long Pos, Temp;
    if (Index > Count)
    {
    Showlist(list, Count); // End
    return;
    }
    MySub(list, Index + 1, Count);
    for(Pos = Index + 1 ; Pos <= Count ; Pos++)
    {
    Temp = list[Pos];
    list[Pos] = list[Index];
    list[Index] = Temp;
    MySub(list, Index + 1, Count);
    list[Index] = list[Pos];
    list[Pos] = Temp;
    }
    {



    تفسیر الگوریتم با خودتون.

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

  1. سوال: کد یا الگوریتم ساخت تقویم به صورت نمایش 30 روزه
    نوشته شده توسط mehran.login در بخش C#‎‎
    پاسخ: 2
    آخرین پست: شنبه 25 شهریور 1391, 13:08 عصر
  2. سوال: نمایش تعداد حالات یک جایگشت
    نوشته شده توسط mehran_337 در بخش Foxpro
    پاسخ: 4
    آخرین پست: دوشنبه 30 آذر 1388, 10:25 صبح
  3. آرایه غیر مرتب بهترین الگوریتم برای نمایش تعداد تکرار
    نوشته شده توسط sohrab o در بخش الگوریتم، کامپایلر، هوش مصنوعی و ساختمان داده ها
    پاسخ: 9
    آخرین پست: پنج شنبه 24 آبان 1386, 00:10 صبح
  4. نمایش فرم MDI
    نوشته شده توسط ghaum در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 3
    آخرین پست: شنبه 24 اسفند 1381, 10:33 صبح
  5. مشکل در نمایش Time
    نوشته شده توسط (امید) در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 4
    آخرین پست: شنبه 24 اسفند 1381, 10:23 صبح

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

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