2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки


Правила форума


В этом разделе нельзя создавать новые темы.

Если Вы хотите задать новый вопрос, то не дописывайте его в существующую тему, а создайте новую в корневом разделе "Помогите решить/разобраться (М)".

Если Вы зададите новый вопрос в существующей теме, то в случае нарушения оформления или других правил форума Ваше сообщение и все ответы на него могут быть удалены без предупреждения.

Не ищите на этом форуме халяву, правила запрещают участникам публиковать готовые решения стандартных учебных задач. Автор вопроса обязан привести свои попытки решения и указать конкретные затруднения.

Обязательно просмотрите тему Правила данного раздела, иначе Ваша тема может быть удалена или перемещена в Карантин, а Вы так и не узнаете, почему.



Начать новую тему Ответить на тему
 
 Найти член последовательности
Сообщение11.06.2009, 17:43 
Заслуженный участник


27/04/09
28128
Пусть последовательность - упорядоченное множество с аовторяющимися элементами 0 и 1, и для двух последовательностей определена конкатенация $ + $. А также имеются следующие определения:
$ a_0 = (0) $
$ \bar a_0 = (1) $
$ a_{n + 1} = a_n + \bar a_n $
$ \bar a_{n + 1} = \bar a_n + a_n $
Очевидно, что длина последовательности $ \operatorname{Length} a_n = 2^n $.
Можно ли найти формулу для j-го члена последовательности $ a_n [\kern-0.15em[ j ]\kern-0.15em] $? Хотя бы рекуррентную... :? А то интересно очень. Или доказать, что такой формулы нет (хотя этого факта не хотелось бы :wink:).

-- Чт июн 11, 2009 20:48:47 --

Можно оставить только два определения, а $ \bar a_n $ ввести как обращение (заменить 0 на 1 и обратно) $ a_n $, сути это не сменит, но, может, упростит всё это

 Профиль  
                  
 
 Re: Найти член последовательности
Сообщение11.06.2009, 18:29 


06/01/09
231
Первая - четность количества единиц в двоичной записи числа $n-1$, вроде как.

Влад.

 Профиль  
                  
 
 Re: Найти член последовательности
Сообщение11.06.2009, 18:36 
Заслуженный участник
Аватара пользователя


06/10/08
6422
Ну, $a_n$ - это вектор значений функции $x_1\oplus x_2\oplus\dots\oplus x_n$
Так что $a_n[j]$ - это четность количества единиц в двоичной записи $j$ (если $j$ считать от 0 до $2^n-1$)

 Профиль  
                  
 
 Re: Найти член последовательности
Сообщение11.06.2009, 18:43 
Модератор
Аватара пользователя


11/01/06
5710
Это последовательность Морса-Туэ.
В явном виде $j$-й элемент равен четности количества единичных битов в двоичной записи числа $j$.

 Профиль  
                  
 
 Re: Найти член последовательности
Сообщение11.06.2009, 18:50 
Заслуженный участник


27/04/09
28128
Спасибо. А сама чётность может быть вычислена только алгоритмически?

 Профиль  
                  
 
 Re: Найти член последовательности
Сообщение11.06.2009, 18:59 
Заслуженный участник
Аватара пользователя


06/10/08
6422
arseniiv в сообщении #221432 писал(а):
Спасибо. А сама чётность может быть вычислена только алгоритмически?

А как еще можно вычислять? :)

Функция примитивно-рекурсивная, если это чем-то поможет.

 Профиль  
                  
 
 Re: Найти член последовательности
Сообщение11.06.2009, 19:37 
Заслуженный участник


27/04/09
28128
Тогда, думаю, самая быстрая реализация на Pascal будет:
Код:
function ThueMorse(X: Longword): Boolean;
begin
  if X=0 then
    Result := False
  else if Odd(X) then
    Result := not ThueMorse(X shr 1)
  else
    Result := ThueMorse(X shr 1);
end;

Интересная последовательность всё-таки. Странная

 Профиль  
                  
 
 Re: Найти член последовательности
Сообщение11.06.2009, 20:04 
Заслуженный участник
Аватара пользователя


06/10/08
6422
Ну, думаю, реализация с циклом вместо рекурсии будет быстрее.

А последовательность интересная, да. Фрактальная.

 Профиль  
                  
 
 Re: Найти член последовательности
Сообщение11.06.2009, 23:02 
Заслуженный участник


04/05/09
4589
arseniiv в сообщении #221442 писал(а):
Тогда, думаю, самая быстрая реализация на Pascal будет:

Делением пополам надо вычислять такие вещи:
Код:
function ThueMorse(X: Longword): Boolean;
begin
  X = X xor (X shr 32);
  X = X xor (X shr 16);
  X = X xor (X shr 8);
  X = X xor (X shr 4);
  X = X xor (X shr 2);
  X = X xor (X shr 1);
  if (X and 1) = 0 then
    Result := False
  else
    Result := True
  end
end;

Я обычно пишу на C/C++, так что код может содержать ошибки.

 Профиль  
                  
 
 Re: Найти член последовательности
Сообщение12.06.2009, 16:39 
Заслуженный участник


27/04/09
28128
Ну, Odd(x) ≡ (x and 1)=1
Алгоритм какой-то не очень хороший. Лучше бы ему не зависеть от длины числа, да и эти 6 операторов были бы хороши в цикле :wink:

 Профиль  
                  
 
 Re: Найти член последовательности
Сообщение29.08.2009, 01:33 


29/08/09
1
http://community.livejournal.com/ru_declarative/86764.html

 Профиль  
                  
 
 Re: Найти член последовательности
Сообщение29.08.2009, 10:19 
Заслуженный участник


27/06/08
4063
Волгоград
arseniiv в сообщении #221427 писал(а):
Пусть последовательность - упорядоченное множество с аовторяющимися элементами 0 и 1, и для двух последовательностей определена конкатенация $ + $. А также имеются следующие определения:
$ a_0 = (0) $
$ \bar a_0 = (1) $
$ a_{n + 1} = a_n + \bar a_n $
$ \bar a_{n + 1} = \bar a_n + a_n $
Очевидно, что длина последовательности $ \operatorname{Length} a_n = 2^n $.
Можно ли найти формулу для j-го члена последовательности $ a_n [\kern-0.15em[ j ]\kern-0.15em] $? Хотя бы рекуррентную... :? А то интересно очень. Или доказать, что такой формулы нет (хотя этого факта не хотелось бы :wink:).

А если бы вы участвовали (или хотя бы следили) в Математическом марафоне, у Вас не возник бы этот вопрос :)
См. ММ108

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group