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

Содержимое удалено Содержимое добавлено
Использован {{BookCat}}; пробелы; →‎К переименованию: снят шаблон после переименования.
Строка 1:
{{К переименованию |2014-11-21}}
 
== Java ==
 
<source lang="java">
import java.util.Arrays;
 
public class PermutationsWithRepetition {
private Object[] source;
Строка 42 ⟶ 40 :
 
Object[][] variations = gen.getVariations();
 
for (Object[] s : variations) {
System.out.println(Arrays.toString(s));
}
}
}
</source>
 
Строка 98 ⟶ 96 :
k = 0, // переменные цикла
n = 0,
j = 0;
for (;;) // цикл псевдорекурсии
{
while(n < N)
Строка 106 ⟶ 104 :
if (k == K)
printf("%02d. %s\n", ++j, pOut);
else
{
if (n < N)
{
*pTop++ = k; // сохраняем k и n в стеке
*pTop++ = n;
}
k++; // псевдорекурсивный вызов
Строка 122 ⟶ 120 :
n = *(--pTop); // выталкиваем k и n из стека
k = *(--pTop);
}
delete[] pOut;
delete[] stack;
Строка 133 ⟶ 131 :
<source lang="Javascript">
function PermutationsWithRepetition(src, len){
 
var K = len - 1, k = 0,
N = src.length, n = 0,
out = [],
stack = [];
 
function next(){
while (true) {
Строка 154 ⟶ 152 :
}
if (stack.length == 0) break;
 
n = stack.pop();
k = stack.pop();
Строка 160 ⟶ 158 :
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,
Строка 194 ⟶ 192 :
</source>
 
{{BookCat}}
[[Категория:Программирование]]