АО
1. Вместо 26 a сделать один вектор с 26 элементами.
2. Внутренние 26 присвоений заменить на пробежку по этому циклу
3. res поменять с vector на Set (так дубли отсекутся)
4. условие накладывать до того, как осуществляешь push!
Size: a a a
АО
АО
АО
a = [[x y z] + T1, [-y x - y z] + T1, [-x + y -x z] + T1
АО
for b in a
p = b .+ [i j k]
if -a1 < p[1] < a1 && -b1 < p[2] < b1 && -c1 < p[3] < c1
push!(res, p)
end
end
АО
VM
for b in a
p = b .+ [i j k]
if -a1 < p[1] < a1 && -b1 < p[2] < b1 && -c1 < p[3] < c1
push!(res, p)
end
end
АО
VM
АО
АО
VM
KT
struct Point{T}
x :: T
y :: T
z :: T
endАО
KT
abstract type AbstractIsometry end
struct Shift{T} <: AbstractIsometry
v :: Vector{T}
end
struct Rotation{T} <: AbstractIsometry
mat :: Matrix{T}
end
VM
KT
function (S :: Shift)(p :: Point)
...
VM
АО
KT
GAP к julia и выкачать оттуда все эти группы, обернув их в удобный интерфейс )VM