#arrays #julia
#массивы #julia
Вопрос:
Мне нужно сгенерировать массив в Julia, который содержит все целые числа до некоторого числа N, исключая пару, которая разделена двумя целыми числами. Я предполагаю, что само N кратно 4. Например, если N= 4, список
[1 4]
Если N= 8,
[1 4 5 8]
Если N= 16,
[1 4 5 8 9 12 13 16]
И так далее. Есть ли простой и эффективный способ сделать это в Julia? Я попробовал решение с collect
помощью, но я не был уверен, как его правильно реализовать.
Ответ №1:
Попробуйте:
vals = Iterators.flatten( ((i-1)*4 1, i*4) for i in 1:N÷4)
Это генерирует итератор, поэтому он будет работать с огромными N
значениями.
Если вы хотите использовать фактические значения collect
, вот для N=16
:
julia> collect(vals)
8-element Vector{Int64}:
1
4
5
8
9
12
13
16