Как получить все перестановки в CBM C? - PullRequest
0 голосов
/ 15 апреля 2020

Я пытаюсь получить все перестановки массива в CBM C. Для небольших случаев, например, [1,2,3], я полагаю, что я могу написать

i1 = nondet()
i2 = nondet()
i3 = nondet()
assume (i > 0 && i < 4); ...
assume (i1 != i2 && i2 != i3 && i1 != i3);
// do stuffs with i1,i2,i3

Но с большими элементами код будет очень запутанным. Поэтому мой вопрос в том, есть ли лучший / общий способ express этого?

...