Использую Sphinx ужо с год. Совет: если есть возможность, то нужно СРАЗУ пересобирать mysql со Sphinx Storage Engine. Это намного быстрей будет работать чем API, ну и в плюс можно с поисковым запросом использовать JOIN.
PS: Скорость сфинкса поражает, как при индексировании так и при поиске ;)
Примерно такой тест проходят в россии, когда получают медсправку для водительского удостоверения, на целом листе нужно зачеркнуть все буквы О если не ошибаюсь.
Так вот к чему это я. Обмануть себя и окружающих можно начиная просмотр текста с самого конца, желательно просматривать по одной букве, не читая слова ;)
Чем то мне это напоминает T-Триггер http://ru.wikipedia.org/wiki/%D0%A2%D1%8…(%D1%8D%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%B8%D0%BA%D0%B0)#T-.D1.82.D1.80.D0.B8.D0.B3.D0.B3.D0.B5.D1.80
все основано на операции not и соблюдении четности,
можно красиво сделать через операторы ~ и <<, но мне лень ;)
$test = new test();
$test->run();
class test
{
public $currentBookState = '01'; // Расположение книг первоначальное
public $order = array(1,2,1,1,3,4,5,1); // Очередность пускания Зеков к книгам
function run()
{
$zekMemory = array(); // память зека, какую комбинацию он увидел при входе
$zekBinMemory = array(); // сколько раз был у книг
if (isset($zekMemory[$zek]) // Если зек здесь был
&& $this->invertor($this->currentBookState) == $zekMemory[$zek] // если он видел эту комбинацию
&& $zekBinMemory[$zek] % 2 == 0 // И если это не он снова пришел (N-раз подряд)
) {
echo "Zek #{$zek}: We are free!!!\n";
break;
}
// Если мы в первый раз, то запоминаем комбинацию книг
if (!isset($zekMemory[$zek])) {
echo "Zek #{$zek}: I'm here at first time; I see: {$this->currentBookState}, I made: " .$this->invertor($this->currentBookState). " \n";
$zekMemory[$zek] = $this->currentBookState;
$this->currentBookState = $this->invertor($this->currentBookState);
} else {
echo "Zek #{$zek}: I'm here was {$zekBinMemory[$zek]} times; I see: {$this->currentBookState}, I made: " .$this->invertor($this->currentBookState). " \n";
$this->currentBookState = $this->invertor($this->currentBookState);
}
}
}
/**
* Простеццкий инвертор
*/
function invertor($val)
{
switch ($val) {
case '00':
return '01';
case '01':
return '11';
case '11':
return '10';
case '10':
return '00';
}
}
}
?>
Результат кода:
bash-3.1#php test.php
Zek #1: I'm here at first time; I see: 01, I made: 11
Zek #2: I'm here at first time; I see: 11, I made: 10
Zek #1: I'm here was 2 times; I see: 10, I made: 00
Zek #1: I'm here was 3 times; I see: 00, I made: 01
Zek #3: I'm here at first time; I see: 01, I made: 11
Zek #4: I'm here at first time; I see: 11, I made: 10
Zek #5: I'm here at first time; I see: 10, I made: 00
We are free!!!
Я не помню кто сказал, но сказал точно — «Слушать музыку в MP3 — этот как смотреть фильм на youtube»
PS: Сам слушаю в MP3. Но некоторые вещи хотел бы купить в Lossless или DiskImage формате.
плюсанул везде
PS: Скорость сфинкса поражает, как при индексировании так и при поиске ;)
http://www.phpdoctrine.org/
http://www.google.com/trends?q=seo%2C+vi…
Так вот к чему это я. Обмануть себя и окружающих можно начиная просмотр текста с самого конца, желательно просматривать по одной букве, не читая слова ;)
Чем то мне это напоминает T-Триггер http://ru.wikipedia.org/wiki/%D0%A2%D1%8…(%D1%8D%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D0%B8%D0%BA%D0%B0)#T-.D1.82.D1.80.D0.B8.D0.B3.D0.B3.D0.B5.D1.80
все основано на операции not и соблюдении четности,
можно красиво сделать через операторы ~ и <<, но мне лень ;)
$test = new test();
$test->run();
class test
{
public $currentBookState = '01'; // Расположение книг первоначальное
public $order = array(1,2,1,1,3,4,5,1); // Очередность пускания Зеков к книгам
function run()
{
$zekMemory = array(); // память зека, какую комбинацию он увидел при входе
$zekBinMemory = array(); // сколько раз был у книг
foreach ($this->order as $zek) {
$zekBinMemory[$zek] = intval($zekBinMemory[$zek]) + 1;
if (isset($zekMemory[$zek]) // Если зек здесь был
&& $this->invertor($this->currentBookState) == $zekMemory[$zek] // если он видел эту комбинацию
&& $zekBinMemory[$zek] % 2 == 0 // И если это не он снова пришел (N-раз подряд)
) {
echo "Zek #{$zek}: We are free!!!\n";
break;
}
// Если мы в первый раз, то запоминаем комбинацию книг
if (!isset($zekMemory[$zek])) {
echo "Zek #{$zek}: I'm here at first time; I see: {$this->currentBookState}, I made: " .$this->invertor($this->currentBookState). " \n";
$zekMemory[$zek] = $this->currentBookState;
$this->currentBookState = $this->invertor($this->currentBookState);
} else {
echo "Zek #{$zek}: I'm here was {$zekBinMemory[$zek]} times; I see: {$this->currentBookState}, I made: " .$this->invertor($this->currentBookState). " \n";
$this->currentBookState = $this->invertor($this->currentBookState);
}
}
}
/**
* Простеццкий инвертор
*/
function invertor($val)
{
switch ($val) {
case '00':
return '01';
case '01':
return '11';
case '11':
return '10';
case '10':
return '00';
}
}
}
?>
Результат кода:
bash-3.1#php test.php
Zek #1: I'm here at first time; I see: 01, I made: 11
Zek #2: I'm here at first time; I see: 11, I made: 10
Zek #1: I'm here was 2 times; I see: 10, I made: 00
Zek #1: I'm here was 3 times; I see: 00, I made: 01
Zek #3: I'm here at first time; I see: 01, I made: 11
Zek #4: I'm here at first time; I see: 11, I made: 10
Zek #5: I'm here at first time; I see: 10, I made: 00
We are free!!!
Или Хеппи Энд не минуем? =)