Реализации алгоритмов/Комбинаторика/Размещения: различия между версиями

Использован {{BookCat}}; пробелы; →‎К переименованию: снят шаблон после переименования.
(Использован {{BookCat}}; пробелы; →‎К переименованию: снят шаблон после переименования.)
{{К переименованию |2014-11-21}}
 
== Java ==
 
<source lang="java">
import java.util.Arrays;
 
public class PermutationsWithRepetition {
private Object[] source;
 
Object[][] variations = gen.getVariations();
 
for (Object[] s : variations) {
System.out.println(Arrays.toString(s));
}
}
}
</source>
 
k = 0, // переменные цикла
n = 0,
j = 0;
for (;;) // цикл псевдорекурсии
{
while(n < N)
if (k == K)
printf("%02d. %s\n", ++j, pOut);
else
{
if (n < N)
{
*pTop++ = k; // сохраняем k и n в стеке
*pTop++ = n;
}
k++; // псевдорекурсивный вызов
n = *(--pTop); // выталкиваем k и n из стека
k = *(--pTop);
}
delete[] pOut;
delete[] stack;
<source lang="Javascript">
function PermutationsWithRepetition(src, len){
 
var K = len - 1, k = 0,
N = src.length, n = 0,
out = [],
stack = [];
 
function next(){
while (true) {
}
if (stack.length == 0) break;
 
n = stack.pop();
k = stack.pop();
return false;
}
 
function rewind(){ k = 0; n = 0; out = []; stack = []; }
 
function each(cb) {
rewind();
var v;
while (v = next()) if (cb(v) === false) return;
}
 
return {
next: next,
</source>
 
{{BookCat}}
[[Категория:Программирование]]
3890

правок