Доброго времени суток. Имеется следующий код генерации перестановок:
public static List<int[]> listOfDiffVectors = new List<int[]>();
public static List<int[]> listOfPerms = new List<int[]>();
private static void Swap(ref int a, ref int b)
{
if (a == b) return;
a ^= b;
b ^= a;
a ^= b;
}
public static void GetPer(int[] list)
{
int x = list.Length - 1;
GetPer(list, 0, x);
}
private static void GetPer(int[] list, int k, int m)
{
if (k == m)
{
int[] diff = new int[list.Length];
int i = 0;
for (i = 0; i < list.Length; i++)
{
int d = 0;
if (i == list.Length - 1)
{
d = list[0] - list[i];
if (d < 0)
d += list.Length;
else
d %= list.Length;
diff[0] = d;
}
else
{
d = list[i + 1] - list[i];
if (d < 0)
d += list.Length;
else
d %= list.Length;
diff[i + 1] = d;
}
}
bool flag = false;
foreach (int[] temp in listOfDiffVectors)
if (temp.SequenceEqual(diff))
{
flag = true;
break;
}
if (!flag)
listOfDiffVectors.Add(diff);
Console.WriteLine(string.Join(" ",list));
// тут я вывожу перестановки
listOfPerms.Add(list);
}
else
for (int i = k; i <= m; i++)
{
Swap(ref list[k], ref list[i]);
GetPer(list, k + 1, m);
Swap(ref list[k], ref list[i]);
}
}
Вот так вызываю функцию:
int[] perm = new int[] { 0,1 };
GetPer(perm);
foreach (int[] tmp in listOfPerms)
Console.WriteLine(string.Join("", tmp));
Дело в том, что на экран выводится всё правильно: 0 1 и 1 0, но вот в listOfPerms
хранятся две одинаковые перестановки 1 0 и 1 0. Понимаю, что перезаписываю содержимое, но не знаю, как это исправить. Помогите разобраться, пожалуйста.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Всем привет! Помогите разобраться с реализацией в C# Необходимо сделать следующее: 1Загрузить картинку (любого размера) 2
Имеется электронный документооборотОбмен данными выполняется с помощью XML следующей структуры:
Кодирую BitmapImage (в формате gif) в массив байт, далее передаю этот массив байт по сети, массивы байтов при отправке и пришествию совпадают, далее...
Есть на форме кнопка сохранитьКогда я её нажимаю, есть необходимость залочить форму, и запустить например колесо прокрутки с текстом на подобии...