четверг, 27 сентября 2012 г.

Функция Капрекара

Возьмем число в котором не все цифры одинаковые.

Составим два новых: наибольшее возможное из цифр исходного числа и наименьшее возможное. Вычтем из большего меньшее.

Произведенные действия называют функцией Капрекара, названной в честь индийского математика открывшего интересное свойство числа 6174.

Применив функцию Капрекара к числу 6174 мы вновь получим число 6174. Более того, если исходное число четырехзначное, то через конечное число шагов мы придем к числу 6174.

Чтобы в Excel применить функцию Капрекара составим в ячейке B1 такую формулу (в ячейке A1 у нас исходное число):

=СУММПРОИЗВ(НАИБОЛЬШИЙ(ПСТР(A1;СТРОКА(ДВССЫЛ("1:" & ДЛСТР(A1)));1)*1;СТРОКА(ДВССЫЛ("1:" & ДЛСТР(A1))))-НАИМЕНЬШИЙ(ПСТР(A1;СТРОКА(ДВССЫЛ("1:" & ДЛСТР(A1)));1)*1;СТРОКА(ДВССЫЛ("1:" & ДЛСТР(A1))));10^(ДЛСТР(A1)-СТРОКА(ДВССЫЛ("1:" & ДЛСТР(A1) ))))

Формула содержит массивы, поэтому после окончания ввода нужно нажать CTRL+SHIFT+ENTER.

Чтобы получить следующий шаг можно просто скопировать полученную формулу в следующую ячейку и т.д.   

вторник, 22 мая 2012 г.

Число уникальных и повторяющихся значений

Пусть в диапазоне A1:A20 находятся какие-либо значения, не обязательно числовые.

Тогда следующая формула даст количество ячеек, встречающихся ровно один раз, т.е. уникальных:
=СУММ(ЕСЛИ(СЧЁТЕСЛИ(A1:A20;A1:A20)=1;1;0))

Количество повторяющихся ячеек, т.е. встречающихся более одного раза, можно посчитать так:
=СУММ(ЕСЛИ(СЧЁТЕСЛИ(A1:A20;A1:A20)>1;1;0))

А чтобы определить сколько различных повторяющихся:
=СУММ(ЕСЛИ(СЧЁТЕСЛИ(A1:A20;A1:A20)>1;1/СЧЁТЕСЛИ(A1:A20;A1:A20);0))

Ну и чтобы определить сколько вообще в диапазоне различных значений:
=СУММ(1/СЧЁТЕСЛИ(A1:A20;A1:A20))

 Все приведенные формулы используют массивы, поэтому после окончания ввода нужно нажать CTRL+SHIFT+ENTER.

Пустых ячеек в диапазоне быть не должно. Иначе формула выдаст ошибку.

Чтобы определить наиболее часто встречающееся значение используем функцию МОДА().

понедельник, 7 мая 2012 г.

Сиракузская последовательность

Возьмем любое натуральное число.
  1. Если оно четное, разделим его на 2, если нечетное - умножим на 3 и прибавим 1.
  2. С полученным числом проделаем пункт 1.
Есть гипотеза, утверждающая, что через конечное число шагов мы придем к последовательности 1 - 4 - 2 - 1 ...

Немного сократим количество шагов, используя массивы в Excel.

Пусть в ячейке A1 исходное нечетное число. В ячейку A2 запишем такую формулу:

=НАИМЕНЬШИЙ(ЕСЛИ(ОСТАТ((A1*3+1);2^СТРОКА(ДВССЫЛ("1:16")));3*A1+1;(A1*3+1)/2^СТРОКА(ДВССЫЛ("1:16")));1)
Это формула содержит массивы, поэтому после окончания ввода нужно нажать CTRL+SHIFT+ENTER.

Указанная формула избавляет число 3*A1+1 от максимальной степени двойки.

Например, если в ячейке A1 число 53, то 3*53+1 = 160 = 25 * 5, то после применения формулы в ячейке A2 получим число 5.

Теперь можно скопировать формулу до строки 20, например, и изменяя первоначальное число в ячейке A1, увидеть что в итоге приходим к числу 1.

среда, 18 января 2012 г.

Скатерть Улама

Скатерть Улама представляет из себя спираль чисел натурального ряда, на которой отмечены клетки, соответствующие простым числам.

Попробуем составить скатерь Улама в Excel. При этом воспользуемся VBA.

Располагая числа по спирали


обозначим перемещения таким образом:
  • П - вправо
  • В - вверх
  • Л - влево
  • Н - вниз