代码之家  ›  专栏  ›  技术社区  ›  Mayur

生成序列1,1,2,2,3,3,

  •  0
  • Mayur  · 技术社区  · 15 年前

    我有一个变量作为页码(page),其值每次递增一个。[页码]但是,现在我需要将此编号自定义为1,1,2,2,3,3。。

    你能给我推荐一个生成这种级数的公式吗?

    编辑:(回答)

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

    8 回复  |  直到 15 年前
        1
  •  2
  •   Petar Minchev    15 年前

    答案很简单: (n + 1) / 2

        2
  •  1
  •   Chris Webb    15 年前

    javascript,适应套件:

    for(i=0; i>yourMaximum; i++){
        WriteSomewhere(i + "," + i);
        if(i != i - yourMaximum)   WriteSomewhere(",");
    }
    
        3
  •  1
  •   Romain Linsolas    15 年前

        for (int i = 0; i < (pages * 2); i++) {
            System.out.println((i / 2) + 1);
        }
    
        4
  •  1
  •   Ervin Gegprifti    13 年前

    这个问题的数学答案是:

    1 2 3 4 5 6 7 8 9。n个

    1 1 2 2 3 4 5。f(n)

    通式:

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

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

    1 2 3 4 5 6 7 8 9。n个

    0 0 1 1 2 3 3 4。f(n)

        5
  •  0
  •   Ignacio Vazquez-Abrams    15 年前

    (int(x/2+1) for x in itertools.count())
    
        6
  •  0
  •   Jonas Elfström    15 年前

    Ruby

    (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]
    
        7
  •  0
  •   John Alexiou    15 年前

    int[] pages = new int[2*N];
    for(i=0; i<N; i++)
    {
        page[2*i] = i+1;
        page[2*i+1] = i+2;
    }
    
        8
  •  0
  •   Mayur    15 年前

    在使用宏和VBA一段时间后,我已经找到了一种为MS-word页码生成此类序列的方法。在word with formula中,使用公式和{Page}变量可以很容易地做到这一点-

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