پرمیوٹیشن

الف نظامی

لائبریرین
دیے ہوئے اعداد کی تمام ممکنہ پرمیوٹیشن بنانے کا الگورتھم یا پروگرام درکار ہے؟
مثلا تین اعداد 1 ، 2 ،3 دینے پر ان کی مندرجہ ذیل تمام ممکنہ پرمیوٹیشن بتادے
123
132
213
231
312
321
 

نبیل

تکنیکی معاون
حوالہ: Calculating Permutations

مذکورہ بالا ربط پر کچھ کوڈ فراہم کیا گیا ہے جسے میں یہاں نقل کر رہا ہوں:

Alexander Bogomolyn's unordered permutation algorithm

کوڈ:
#include <stdio.h>


void print(const int *v, const int size)
{
  if (v != 0) {
    for (int i = 0; i < size; i++) {
      printf("%4d", v[i] );
    }
    printf("n");
  }
} // print


void visit(int *Value, int N, int k)
{
  static level = -1;
  level = level+1; Value[k] = level;

  if (level == N)
    print(Value, N);
  else
    for (int i = 0; i < N; i++)
      if (Value[i] == 0)
        visit(Value, N, i);

  level = level-1; Value[k] = 0;
}


main()
{
  const int N = 4;
  int Value[N];
  for (int i = 0; i < N; i++) {
    Value[i] = 0;
  }
  visit(Value, N, 0);
}

ذیل میں N=4 کے لیے اس روٹین سے حاصل ہونے والے نتائج فراہم کیے جا رہے ہیں:

کوڈ:
1   2   3   4
   1   2   4   3
   1   3   2   4
   1   4   2   3
   1   3   4   2
   1   4   3   2
   2   1   3   4
   2   1   4   3
   3   1   2   4
   4   1   2   3
   3   1   4   2
   4   1   3   2
   2   3   1   4
   2   4   1   3
   3   2   1   4
   4   2   1   3
   3   4   1   2
   4   3   1   2
   2   3   4   1
   2   4   3   1
   3   2   4   1
   4   2   3   1
   3   4   2   1


اسی ربط پر permutations معلوم کرنے کے لیے کچھ اور الگورتھم اور متعلقہ روابط بھی فراہم کیے گئے ہیں۔
 

الف نظامی

لائبریرین
ساغر پرمیوٹیشن ریاضی کا ایک مسلہ ہے۔ جس میں دئی گئی اشیا کی تمام ممکنہ ترتیب معلوم کرنا ہوتی ہیں۔
مثلا اگر آپ کے پاس 3 اشیا ہیں A B اور C تو ان کی ممکنہ پرمیوٹیشن یہ ہوں گی۔
abc
acb
bac
bca
cab
cba
 
Top