Основная причина медлительности в том, что вы вычисляете EuclideanDistance
из всех точек до шага i
для за каждый шаг i
. Вы увидите разницу, если вы сделаете этот шаг из Manipulate
.
prob = MapIndexed[#1/#2 &, Accumulate[
EuclideanDistance[{0, 0}, #] < 1 & /@ arrows // Boole]] ~ N ~ 4;
Решение Хайке гораздо более гладкое, чем у вас или у Насера, поэтому я буду использовать его в качестве примера. Вы бы использовали предварительно рассчитанное значение prob
в нем как:
Manipulate[
Graphics[{White, Rectangle[{-5, -5}, {5, 5}], Red, Disk[{0, 0}, 1],
Black, Point[arrows[[;; i]]],
Text[Style[First@prob[[i]], Bold, 18, "Helvetica"], {-4.5, 4.5}]},
ImageSize -> 200], {i, Range[2, 20000, 1]},
ControlType -> Manipulator, SaveDefinitions -> True]
Я установил точность равномерно до 4 цифр, потому что в противном случае вы увидите, как цифра будет расти, когда число значащих цифр изменится.