Этот сайт не наркоманов. Это сайт программистов.

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Пыха информатор 3.1
Еще более удобное оповещение о флуде!

Краснодарское время: 11 Февраль, 2012, 08:51:49

Страниц: 1 [2] 3
Печать
Автор Тема: Вычисление комбинаций по факториалу  (Прочитано 4182 раз)
0 Пользователей и 1 Гость смотрят эту тему.
CTAPbIu_MABP    ↓ 
12 Май, 2009, 11:11:49
НЕ ХУЕТА! ХУЕТА!

мавр
Группа: в ухо

Карма: не нужна
Сообщений: 5184
Сила слова: 1.81

скрипт в студию
Записан

java.lang.OutOfMemoryError
phpdude    ↓ 
12 Май, 2009, 11:13:30 , спустя 1 минуту 41 секунду
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 339
Сообщений: д-о-х-у-я!
Сила слова: 1.72

http://pyha.ru/forum/topic/2446.msg45056#msg45056
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
CTAPbIu_MABP    ↓ 
12 Май, 2009, 11:15:35 , спустя 2 минуты 5 секунд
НЕ ХУЕТА! ХУЕТА!

мавр
Группа: в ухо

Карма: не нужна
Сообщений: 5184
Сила слова: 1.81

куль
Записан

java.lang.OutOfMemoryError
phpdude    ↓ 
12 Май, 2009, 11:16:10 , спустя 35 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 339
Сообщений: д-о-х-у-я!
Сила слова: 1.72


куль
можно и без массивов, но я люблю массивы.
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
CTAPbIu_MABP    ↓ 
12 Май, 2009, 11:28:36 , спустя 12 минут 26 секунд
НЕ ХУЕТА! ХУЕТА!

мавр
Группа: в ухо

Карма: не нужна
Сообщений: 5184
Сила слова: 1.81

я люблю скорость
если работает быстро (и код читабелен) то все ништяк
Записан

java.lang.OutOfMemoryError
ghost    ↓ 
17 Май, 2009, 08:38:59 , спустя 4 дня 21 час 10 минут 23 секунды
НЕ ХУЕТА! ХУЕТА!

без вариантов
Группа: в ухо

Карма: 29
Сообщений: 876
Сила слова: 3.31


PHP
<?
$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 нет, и еще нескольких
Записан

Если ты уже два часа споришь с идиотом - скорее всего он делает тоже самое...
CTAPbIu_MABP    ↓ 
17 Май, 2009, 08:53:06 , спустя 14 минут 7 секунд
НЕ ХУЕТА! ХУЕТА!

мавр
Группа: в ухо

Карма: не нужна
Сообщений: 5184
Сила слова: 1.81

ghost, кул! никто больше похоже не проверял
Записан

java.lang.OutOfMemoryError
phpdude    ↓ 
17 Май, 2009, 09:10:13 , спустя 17 минут 7 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 339
Сообщений: 19713
Сила слова: 1.72

ghost, понимаешь, эдво такие результаты и просил. мне то похуй что генерить
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
phpdude    ↓ 
17 Май, 2009, 09:10:33 , спустя 20 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 339
Сообщений: д-о-х-у-я!
Сила слова: 1.72

Мне надо, например из 3-х слов
Цитата:
раз, два, три
 
 
составить комбинации
Цитата:
раз-два-три
раз-три-два
два-раз-три
два-три-раз
три-раз-два
три-два-раз
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
phpdude    ↓ 
17 Май, 2009, 09:11:15 , спустя 42 секунды
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 339
Сообщений: д-о-х-у-я!
Сила слова: 1.72

PHP
<?
$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 убери из второго фора + ансет вытри и будет тебе как ты говоришь :)
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
ghost    ↓ 
17 Май, 2009, 09:21:21 , спустя 10 минут 6 секунд
НЕ ХУЕТА! ХУЕТА!

без вариантов
Группа: в ухо

Карма: 29
Сообщений: 876
Сила слова: 3.31

не, не будет.. тут либо рекурсию нужно, либо лишние циклы.. универсальной формулы в комбинаторике нет, и 2-я циклами ( множество размерности n^2) всех перестановок (множество размерности n!) ты не получишь
Записан

Если ты уже два часа споришь с идиотом - скорее всего он делает тоже самое...
phpdude    ↓ 
17 Май, 2009, 09:30:20 , спустя 8 минут 59 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 339
Сообщений: д-о-х-у-я!
Сила слова: 1.72

ghost, ты права наверно
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
phpdude    ↓ 
17 Май, 2009, 09:30:39 , спустя 19 секунд
НЕ ХУЕТА! ХУЕТА!

я - ЭМО
Группа: в ухо

Карма: 339
Сообщений: 19713
Сила слова: 1.72

думать не хочется, устал за сегодня уже)))
 
может завтра вернусь покопать эту тему)
Записан

забанен. могу забанить других, пишите в личку
BEER. Helping ugly people have sex since 1862.
ghost    ↓ 
17 Май, 2009, 10:25:37 , спустя 54 минуты 58 секунд
НЕ ХУЕТА! ХУЕТА!

без вариантов
Группа: в ухо

Карма: 29
Сообщений: 876
Сила слова: 3.31

че тут думать? тут трясти надо :)
 
PHP
<?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;
?>
Записан

Если ты уже два часа споришь с идиотом - скорее всего он делает тоже самое...
ghost    ↓ 
17 Май, 2009, 11:03:46 , спустя 38 минут 9 секунд
НЕ ХУЕТА! ХУЕТА!

без вариантов
Группа: в ухо

Карма: 29
Сообщений: 876
Сила слова: 3.31


не, не будет.. тут либо рекурсию нужно, либо лишние циклы.. универсальной формулы в комбинаторике нет, и 2-я циклами ( множество размерности n^2) всех перестановок (множество размерности n!) ты не получишь
да, пардон, не размерности а мощности. размерность это из другой оперы)
Записан

Если ты уже два часа споришь с идиотом - скорее всего он делает тоже самое...
Страниц: 1 [2] 3
Печать
 

Перейти в: