Помогите проверить программку

Форум пользователей пакета Maple

Модератор: Admin

nataly-mak
Сообщения: 29
Зарегистрирован: Вс авг 17, 2008 5:45 pm
Контактная информация:

Помогите проверить программку

Сообщение nataly-mak » Пн апр 18, 2011 6:21 am

Здравствуйте, уважаемые форумчане!
Написала программку по аналогии с той, которая была добавлена в мою статью в OEIS:

s:= proc(n) option remember;
`if` (n=1, add (ithprime(i), i=1..64),
ithprime(n+63) -ithprime(n-1) +s(n-1))
end:
a:= proc(n) option remember; local k, m;
a(n-1);
for k from 1+b(n-1) while irem (s(k), 16, 'm')<>0 do od;
b(n):= k; m
end:
a(0):=0: b(0):=0:
seq (a(n), n=1..50);

Правильно ли написала? Никогда не пользовалась пакетами математических программ, и ни один из них у меня не установлен.
Прошу проверить мою программку. Что она выдаст, если её выполнить? По идее должна получиться последовательность из 50 членов, первые члены которой такие:

Код: Выделить всё

2016, 2244, 2336, 2570, 2762, 4106, 4362, 4464, 4566, 4670, 4776, 4934

Эти члены последовательности я тоже нашла по программке, только не в Maple.
Если такие члены получатся, то программка верно написана.
Заранее спасибо!

P.S. Готовлю новую последовательность для OEIS, аналогичную последовательности A188536, только для магических квадратов 8-го порядка.
Лучше один раз увидеть...

Kitonum
Сообщения: 2084
Зарегистрирован: Ср дек 31, 2008 1:55 pm
Откуда: г. Пенза

Re: Помогите проверить программку

Сообщение Kitonum » Пн апр 18, 2011 9:15 am

nataly-mak писал(а):Здравствуйте, уважаемые форумчане!
Написала программку по аналогии с той, которая была добавлена в мою статью в OEIS:

s:= proc(n) option remember;
`if` (n=1, add (ithprime(i), i=1..64),
ithprime(n+63) -ithprime(n-1) +s(n-1))
end:
a:= proc(n) option remember; local k, m;
a(n-1);
for k from 1+b(n-1) while irem (s(k), 16, 'm')<>0 do od;
b(n):= k; m
end:
a(0):=0: b(0):=0:
seq (a(n), n=1..50);

Правильно ли написала? Никогда не пользовалась пакетами математических программ, и ни один из них у меня не установлен.
Прошу проверить мою программку. Что она выдаст, если её выполнить? По идее должна получиться последовательность из 50 членов, первые члены которой такие:

Код: Выделить всё

2016, 2244, 2336, 2570, 2762, 4106, 4362, 4464, 4566, 4670, 4776, 4934

Эти члены последовательности я тоже нашла по программке, только не в Maple.
Если такие члены получатся, то программка верно написана.
Заранее спасибо!

P.S. Готовлю новую последовательность для OEIS, аналогичную последовательности A188536, только для магических квадратов 8-го порядка.

Программа работает. Вот результат:

1008, 1122, 1168, 1285, 1381, 2053, 2181, 2232, 2283, 2335, 2388,

2467, 2976, 3435, 3518, 3573, 3794, 3822, 3850, 4412, 4878,

4965, 4994, 5197, 5227, 5257, 5345, 5434, 5464, 5780, 6310,

6341, 7493, 7712, 7904, 8000, 8255, 9334, 10217, 10775, 10968,

11470, 11566, 11827, 11861, 12032, 12067, 12273, 12376, 12477

nataly-mak
Сообщения: 29
Зарегистрирован: Вс авг 17, 2008 5:45 pm
Контактная информация:

Сообщение nataly-mak » Пн апр 18, 2011 9:31 am

Спасибо большое!

Но, как я поняла, она выводит мне в качестве членов последовательности a(n) числа в два раза меньшие. Это она как проверяет S/16, так полученный результат и выводит.
А мне надо, чтобы она выводила в качестве a(n) не S/16, а S/8.
Как мне тогда записать выводимую последовательность? Может быть так:

seq (2*a(n), n=1..50);
Лучше один раз увидеть...

Kitonum
Сообщения: 2084
Зарегистрирован: Ср дек 31, 2008 1:55 pm
Откуда: г. Пенза

Сообщение Kitonum » Пн апр 18, 2011 9:54 am

nataly-mak писал(а):Спасибо большое!

Но, как я поняла, она выводит мне в качестве членов последовательности a(n) числа в два раза меньшие. Это она как проверяет S/16, так полученный результат и выводит.
А мне надо, чтобы она выводила в качестве a(n) не S/16, а S/8.
Как мне тогда записать выводимую последовательность? Может быть так:

seq (2*a(n), n=1..50);

Да, именно так!

nataly-mak
Сообщения: 29
Зарегистрирован: Вс авг 17, 2008 5:45 pm
Контактная информация:

Сообщение nataly-mak » Пн апр 18, 2011 12:34 pm

Ещё раз спасибо!
Лучше один раз увидеть...