TGViewer
Python вопросы с собеседований Python вопросы с собеседований @python_job_interview · 24.9K subscribers
Post #327 3.48K
🧮 Задача: Abelian sandpiles

Смоделируйте гравитацию, действующую на кучу песка.

Напишите функцию apply_gravity, которая, учитывая двумерный массив numpy, представляющий песок, будет "применять гравитацию" к нему (и ничего не вернет):

1. Каждый элемент массива представляет собой целое число, отражающее высоту кучи песка.

2. Любая "куча", в которой находится 4 или более частиц песка, разрушается, в результате чего четыре частицы вычитаются из кучи и распределяются между ее соседями.

Решение:

>>> import numpy as np
>>> sandpile = np.zeros((5, 5), dtype=np.uint32)
>>> sandpile[2, 2] = 16
>>> apply_gravity(sandpile)
>>> print(sandpile)
[[0 0 1 0 0]
[0 2 1 2 0]
[1 1 0 1 1]
[0 2 1 2 0]
[0 0 1 0 0]]

Ресурсы

Бонус!

Используйте matplotlib для отображения результата в виде изображения:

apply_gravity(sandpile)
plt.imshow(sandpile)
plt.show()

Чтобы продемонстрировать результаты, вычислите кучу песка размером 2 ** 24 песчинки

Ваше мнение пишите в комментариях 👇

@python_job_interview
  • 🔥 7
  • 👍 4
  • ❤ 2
More from @python_job_interview
  1. Oct 2, 2026photo post
  2. Oct 2, 2026🌟 SGLang научил чат-модели отвечать вероятностями Команда открытого движка инференса SGLa…
  3. Oct 1, 2026🖥 Примеры кода на Python 2026: лучшие практики, разбор и задачи с решениями Python пример…
  4. Sep 30, 2026🔥 Почему Python-библиотеки всё чаще пишут критичные части на Rust Например, Pydantic v2 и…
  5. Sep 29, 2026🌟 OpenScience: персональный учёный с режимом автономных экспериментов Стартап Synthetic S…
  6. Sep 28, 2026Миниатюра из фотографии за 4 строки Python 🐍 from PIL import Image with Image.open("my_im…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →