这个人骑车骑出了一个向量,然后。。。

2020-04-09  本文已影响0人  小洁忘了怎么分身

花花写于2020-4-9

起因

话说有那么一天,曾老板闲来无事出门骑车,还骑了个来回,发现自己骑出了个向量,遂很开心的丢进了各个群当练习题,用R语言生成那一串数:9,8,10。。。1,17。
这。。。当然是写答案。就好比下了个毒,我就赶紧找解药。

简单版

x = rep(0,17)
x[seq(1,17,2)]=9: 17
x[seq(2,17,2)]=8: 1
x
#[1]  9  8 10  7 11  6 12  5 13  4 14
#[12]  3 15  2 16  1 17

函数版

上面的方法仅适用于17。如果要不局限于着一个数字,那就要写函数。
需要区分奇偶数,先分别拿个例子试试

#奇数
n=17
x = integer()
x[seq(1,n,2)]=((n+1)/2): n
x[seq(2,n,2)]=((n+1)/2 -1): 1
x
#[1]  9  8 10  7 11  6 12  5 13  4 14
#[12]  3 15  2 16  1 17
#偶数
n=18
y=integer()
(n/2+1): n
(n/2): 1
y[seq(1,n,2)]=(n/2+1): n
y[seq(2,n,2)]=(n/2): 1
y
#[1] 10  9 11  8 12  7 13  6 14  5 15
#[12]  4 16  3 17  2 18  1

测试好了就木有问题。写成函数。

dud = function(n){
  y = integer()
  if(n %% 2==0){
    y[seq(1,n,2)]=(n/2+1): n
    y[seq(2,n,2)]=(n/2): 1
  }else{
    y[seq(1,n,2)]=((n+1)/2): n
    y[seq(2,n,2)]=((n+1)/2 -1): 1
  }
  return(y)
}
dud(17)
#[1]  9  8 10  7 11  6 12  5 13  4 14
#[12]  3 15  2 16  1 17
dud(18)
#[1] 10  9 11  8 12  7 13  6 14  5 15
#[12]  4 16  3 17  2 18  1

嗯。骑的真快,我一开始还以为是跑步跑的。突然想起,前几天小郭同学说他给曾老板组装了个自行车来着。夸夸小郭,上得厅堂下得厨房,装的了服务器组的了自行车,还会修灯泡。PS:他是我们全国巡讲团队的助教啊,多了就不说了,怕被打。

上一篇下一篇

猜你喜欢

热点阅读