Size: a a a

Язык программирования Julia / Julia programming language

2020 January 20

VM

Viktor Maslov in Язык программирования Julia / Julia programming language
Я думал так ```
n = 1
for i = -n:n
   for j = -n:n
       for k = -n:n
           Vt = a1 + [i, j, k]
       end
   end
end
```
источник

VM

Viktor Maslov in Язык программирования Julia / Julia programming language
Но так не получается
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
Куча вариантов есть.
Например так
translations(x, n = 1) = reshape(map(t -> x .+ t, Iterators.product(-n:n, -n:n, -n:n)), :)
translations((0, 0, 0)) # Vector{Tuple{Int64,Int64,Int64}} with 27 elements
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
1000? Это тяжело... Получается 2001^3 трансляций = 8*10^9
источник

VM

Viktor Maslov in Язык программирования Julia / Julia programming language
Блин, прям трансляция есть... Это не язык, а находка!
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
Возможно стоит оптимизировать алгоритм как-то.
источник

VM

Viktor Maslov in Язык программирования Julia / Julia programming language
Андрей Оськин
1000? Это тяжело... Получается 2001^3 трансляций = 8*10^9
Возможно стоит, но до этого я еще доберусь
источник

VM

Viktor Maslov in Язык программирования Julia / Julia programming language
Андрей Оськин
1000? Это тяжело... Получается 2001^3 трансляций = 8*10^9
при 50 Scilab ложится и дергается в конвульсиях
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
50 -> 10^6 трансляций

x = translations((0, 0, 0), 50)           # Vector{Tuple{Int64,Int64,Int64}} with 1030301 elements
Base.summarysize(x)/1024/1024 # 23.6 Mb
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
То есть трансляции одной точки занимают 23.6 мегабайта.
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
При достаточно большом наборе точек очень лего OOM словить.
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
вы уверены, что вам нужно их генерировать все?
источник

АО

Андрей Оськин in Язык программирования Julia / Julia programming language
👍
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
Может, вы просто отождествите те точки, которые сдвигами друг в друга переходят
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
проверить это гораздо проще, чем в явном виде это множество генерить
источник

VM

Viktor Maslov in Язык программирования Julia / Julia programming language
Kirill Tsaregorodtsev
проверить это гораздо проще, чем в явном виде это множество генерить
Попробую. Спасибо!
источник

KT

Kirill Tsaregorodtsev in Язык программирования Julia / Julia programming language
т.е. написать тип Point{T} свой и переопределить для него isequal
источник

VM

Viktor Maslov in Язык программирования Julia / Julia programming language
Kirill Tsaregorodtsev
т.е. написать тип Point{T} свой и переопределить для него isequal
До этого доберусь попозже. Пока мне нужно n =1
источник

VM

Viktor Maslov in Язык программирования Julia / Julia programming language
Позже построенную ячейку буду размножать, вот тогда воспользуюсь советом. Спасибо!
источник

VM

Viktor Maslov in Язык программирования Julia / Julia programming language
источник