Генерация серии 1,1,2,2,3,3, - PullRequest
       12

Генерация серии 1,1,2,2,3,3,

0 голосов
/ 14 октября 2010

В качестве номера страницы (страницы) у меня есть переменная, значения которой увеличиваются на единицу каждый раз.[Нумерация страниц] Но теперь мне нужно настроить эту нумерацию на 1,1,2,2,3,3 ..

Можете ли вы предложить какую-либо формулу для создания такого рода рядов?* РЕДАКТИРОВАТЬ: (Ответ)

После игры с макросами и VBA в течение некоторого времени я нашел способ генерировать этот тип рядов для номеров страниц MS Word.Это легко сделать с помощью формул и переменной {Page} в слове с формулой-

{=(({PAGE} + MOD({PAGE},2))/2)}

Ответы [ 8 ]

2 голосов
/ 14 октября 2010

Ответ прост: (n + 1) / 2

1 голос
/ 05 октября 2013

Уже поздно, но это может кому-то помочь.

Математический ответ на задачу:

Вам не нужно искать все n чисел по порядкуиметь конкретный результат

1 2 3 4 5 6 7 8 9.,,,,,,n

1 1 2 2 3 3 4 4 5.,,,,,,f (n)

Общая формула:

f (n) = (n - ((-1) + (-1) ^ n) / 2) /2

Играя с первым (-1), вы можете сместить результаты следующим образом:

f (n) = (n - (( 3 *)1024 *) + (-1) ^ n) / 2) / 2

1 2 3 4 5 6 7 8 9.,,,,,,n

0 0 1 1 2 2 3 3 4.,,,,,,е (п)

1 голос
/ 14 октября 2010

Вы можете сделать такую ​​вещь:

    for (int i = 0; i < (pages * 2); i++) {
        System.out.println((i / 2) + 1);
    }
1 голос
/ 14 октября 2010

javascript, адаптироваться к сюиту:

for(i=0; i>yourMaximum; i++){
    WriteSomewhere(i + "," + i);
    if(i != i - yourMaximum)   WriteSomewhere(",");
}
0 голосов
/ 26 октября 2010

Поработав некоторое время с макросами и VBA, я нашел способ генерировать серию такого типа для номеров страниц MS Word.Это легко сделать с помощью формул и переменной {Page} в слове с формулой -

{=(({PAGE} + MOD({PAGE},2))/2)}

0 голосов
/ 16 октября 2010

C #, не формула, а упрощенный алгоритм.

int[] pages = new int[2*N];
for(i=0; i<N; i++)
{
    page[2*i] = i+1;
    page[2*i+1] = i+2;
}
0 голосов
/ 14 октября 2010

рубин

(1..10).map {|n| [n,n]}.flatten
=> [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10]

или

(1..10).inject([]) {|m,n| m<<n<<n}
=> [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10]

или

(1..10*2).map {|n| (1+n)/2}
=> [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10]
0 голосов
/ 14 октября 2010

Python:

(int(x/2+1) for x in itertools.count())
...