花花写于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:他是我们全国巡讲团队的助教啊,多了就不说了,怕被打。
网友评论