повесить эксель
От: Кодт Россия  
Дата: 25.03.18 11:43
Оценка:
Навеяло https://pikabu.ru/story/exel_veshaet_nout_5801336

Какую максимальную вычислительную сложность можно организовать на экселе? ("из коробки", без макросов)
Если у нас есть N ячеек с формулами, то какое самое лютое обновление возможно при изменении значения одной ячейки?

Линейная сложность: каждая следующая ячейка зависит от постоянного количества предыдущих.
Квадратичная: зависит от всех предыдущих (например, сумма по столбцу выше). Кстати, а эксель не распознаёт ли такие формулы и не мемоизирует ли сумму?
Кто больше?
Перекуём баги на фичи!
Re: повесить эксель
От: kov_serg Россия  
Дата: 25.03.18 14:34
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Навеяло https://pikabu.ru/story/exel_veshaet_nout_5801336


К>Какую максимальную вычислительную сложность можно организовать на экселе? ("из коробки", без макросов)

К>Если у нас есть N ячеек с формулами, то какое самое лютое обновление возможно при изменении значения одной ячейки?
Экспоненциальную
A1=a
A2=ПОДСТАВИТЬ(A1;"a";"aa")
A2... заполнить вниз (Ctrl+D)


К>Линейная сложность: каждая следующая ячейка зависит от постоянного количества предыдущих.

К>Квадратичная: зависит от всех предыдущих (например, сумма по столбцу выше). Кстати, а эксель не распознаёт ли такие формулы и не мемоизирует ли сумму?
К>Кто больше?
Re[2]: повесить эксель
От: Кодт Россия  
Дата: 25.03.18 16:25
Оценка:
Здравствуйте, kov_serg, Вы писали:

_>Экспоненциальную

_>
_>A1=a
_>A2=ПОДСТАВИТЬ(A1;"a";"aa")
_>A2... заполнить вниз (Ctrl+D)
_>


Строки рулят! Можно проще, СЦЕПИТЬ(A1;A1), тоже взорвём. Но мы тут взорвём память.

А есть ли какие-то сценарии, более нажористые над числами?
Перекуём баги на фичи!
Re[3]: повесить эксель
От: kov_serg Россия  
Дата: 26.03.18 07:49
Оценка: 10 (1)
Здравствуйте, Кодт, Вы писали:

К>А есть ли какие-то сценарии, более нажористые над числами?

Можно excel сделать более "интерактивным" добавив в каждое вычисление грузило
ПОИСК("1";ПОВТОР("0";32766) & "1")-ПОИСК("2";ПОВТОР("0";32766) & "2")
Например
A1=1
A2=A1+(ПОИСК("1";ПОВТОР("0";32766) & "1")-ПОИСК("2";ПОВТОР("0";32766) & "2"))
B2=A1+(ПОИСК("1";ПОВТОР("0";32766) & "1")-ПОИСК("2";ПОВТОР("0";32766) & "2"))
И затем растянуть вправо и растянуть вниз. И менять A1. Будет видно в каком порядке оно считает.
Грузила можно добавлять сразу группами по несколько штук если одного мало.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.