Генерация списка любой другой пары целых чисел в Julia

#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