Форум → Программирование → JavaScript → Вычисление комбинаций по факториалу
Вычисление комбинаций по факториалу
Страницы: ← Предыдущая страница • Следующая страница →
-
-
-
-
12 мая 2009 г. 23:16, спустя 35 секунд
можно и без массивов, но я люблю массивы.
кульСапожник без сапог -
12 мая 2009 г. 23:28, спустя 12 минут 26 секунд
я люблю скорость
если работает быстро (и код читабелен) то все ништяк -
17 мая 2009 г. 20:38, спустя 4 дня 21 час 10 минут
<?
$data = array("Раз","Два","Три");
$wdata = array_merge($data,$data);
$count = count($data);
$result = array();
foreach($data as $i=>$v)
{
$c = $wdata;
unset($c[$i],$c[$i+$count]);
$c = array_values($c);
for($j=0;$j<$count-1;$j++)
{
$return[] = $v."-".join("-",array_slice($c,$j,$count-1));
}
}
echo join("\n",$return);
ну и у мну пиздец код конечно, но как вариант может и пойдет :))
имхо главное - прозрачность кода.Раз-Два-Три
Раз-Три-Два
Два-Раз-Три
Два-Три-Раз
Три-Раз-Два
Три-Два-Раз
код пойдёт только для 1,2,3
для 1,2,3,4 - видим1 - 2 - 3 - 4
1 - 3 - 4 - 2
1 - 4 - 2 - 3
2 - 1 - 3 - 4
2 - 3 - 4 - 1
2 - 4 - 1 - 3
3 - 1 - 2 - 4
3 - 2 - 4 - 1
3 - 4 - 1 - 2
4 - 1 - 2 - 3
4 - 2 - 3 - 1
4 - 3 - 1 - 2
очевидно комбинации 1-2-4-3 нет, и еще нескольких -
-
17 мая 2009 г. 21:10, спустя 17 минут 7 секунд
ghost, понимаешь, эдво такие результаты и просил. мне то похуй что генеритьСапожник без сапог -
17 мая 2009 г. 21:10, спустя 20 секунд
Мне надо, например из 3-х слов
Цитата:
раз, два, три
составить комбинации
Цитата:
раз-два-три
раз-три-два
два-раз-три
два-три-раз
три-раз-два
три-два-разСапожник без сапог -
17 мая 2009 г. 21:11, спустя 42 секунды
<?
$data = array("Раз","Два","Три");
$wdata = array_merge($data,$data);
$count = count($data);
$result = array();
foreach($data as $i=>$v)
{
for($j=0;$j<$count;$j++)
{
$return[] = $v."-".join("-",array_slice($wdata,$j,$count-1));
}
}
echo join("\n",$return);
-1 убери из второго фора + ансет вытри и будет тебе как ты говоришь :)Сапожник без сапог -
17 мая 2009 г. 21:21, спустя 10 минут 6 секунд
не, не будет.. тут либо рекурсию нужно, либо лишние циклы.. универсальной формулы в комбинаторике нет, и 2-я циклами ( множество размерности n^2) всех перестановок (множество размерности n!) ты не получишь -
-
17 мая 2009 г. 21:30, спустя 19 секунд
думать не хочется, устал за сегодня уже)))
может завтра вернусь покопать эту тему)Сапожник без сапог -
17 мая 2009 г. 22:25, спустя 54 минуты 58 секунд
че тут думать? тут трясти надо :)<?php
$arr = array(1, 2, 3, 4, 5);
function shift($arr, $str) {
$rez = '';
if (count($arr)==1) return $str.($str ? ' - ' : '').array_shift($arr)."<br />";
foreach ($arr as $key=>$val) {
$arr1 = $arr;
unset($arr1[$key]);
$str1 = $str.($str ? ' - ' : '').$val;
$rez .= shift($arr1, $str1);
}
return $rez;
}
$rez = shift($arr, '');
print $rez;
?> -
17 мая 2009 г. 23:03, спустя 38 минут 9 секунд
не, не будет.. тут либо рекурсию нужно, либо лишние циклы.. универсальной формулы в комбинаторике нет, и 2-я циклами ( множество размерности n^2) всех перестановок (множество размерности n!) ты не получишь
да, пардон, не размерности а мощности. размерность это из другой оперы)
Страницы: ← Предыдущая страница • Следующая страница →
Пожалуйста, авторизуйтесь, чтобы написать комментарий!