R语言 循环+条件+函数基础练习_1

————学习笔记————————————

1、循环

(1)本金10000元存入银行,年利率是百分之三,每过1年,将本金和利息相加作为新的本金。计算10年之后,获得本金是多少?

用for循环

sum=10000
for(i in 1:10){
  sum=sum+0.03*sum
}
print(sum)
}

2、循环+条件语句

(1)找出1:1000既不能被6整除,又不能被8整除的所有数

for(i in 1:1000){
  if(i%%6!=0 & i%%8!=0){
    print(i)
  }
}

(2)有1元,2元,5元的钱,现在凑成50元,有多少种可能性?

count=0####组合总数
cc=list()####存放具体怎么组合
for(a in 0:50){
  for(b in 0:25){
    for(c in 0:10){
      if(5*c+2*b+a==50){
        count=count+1
        cc[[count]]=c(a,b,c)
      }
    }
  }
}
print(count)
print(cc)

(3)所谓的水仙花数是指一个三位数,其各位数字的立方和等于该数本身。如153= 1 3 + 5 3 + 3 3 1^{3}+5^{3}+3^{3} 13+53+33,请统计水仙花数的个数?

a=0
for(i in 1:9){
  for(j in 0:9){
    for(k in 0:9){
      if(i^3+j^3+k^3==i*100+j*10+k){
        a=a+1
      }
    }
  }
}
print(a)

3、自编函数

(1)两个球分别为红球和蓝球,进行放回随机抽样,直到抽到m个蓝球为止,一共需要抽取多少次?这个过程进行n次,抽取次数平均值是多少?

num=function(m,n){
  total=0 #####3000试验中总的抽取次数
  for(i in 1:n){
    x=c(0,1)
    sum=0 ####蓝球出现的次数
    count=0 ####抽取的次数
    while (sum<m) {
      count=count+1
      lan=sample(x,size=1,replace=T)
      if(lan==1){
        sum=sum+1
      }else{sum=sum+0} 
    }
     total=total+count  
  }
  mean=total/n
  return(mean)
  }
  > num(6,3000)
[1] 12.02067

(2)斐波纳契数列(Fibonacci Sequence),又称黄金分割数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……
请编写一个函数,返回裴波那契数列的第i个数数值。

方法1:循环+判断

fib=function(i){
  fib1=1
  fib2=1
  if(i==1|i==2){
    return(1)
  }
  for(j in 3:i) {
   fib_1 = fib2
   fib2 = fib1 + fib2
   fib1 = fib_1
  }
  return(fib2)
}
fib(7)

方法二 递归
这里不展示代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值