2014-03-03 85 views
1

我堅持爲以下任務創建循環。如何創建複雜的循環

  1. 這個問題問的是X & y是整數1到100
  2. 多少獨特的權力,X^Y,有哪幾種?
  3. 我已經瞭解了基本循環,但我不知道從哪裏開始。

這將有助於得到一些建議。

+2

當閱讀這個問題的頭銜,我只是在想: **不要!** – ziggystar

回答

2

你不需要循環。而是使用lapply,其操作類似於一個循環:

length(unique(unlist(lapply(1L:100L, function(x) (1L:100L)^x)))) 

打破了這一點:

# apply the exponents 1:100 to all values 1:100 
vallist <- lapply(1L:100L, function(x) (1L:100L)^x) 
# form one vector and find all unique values from it: 
u <- unique(unlist(vallist)) 
# number of unique values: 
length(u) 
+0

'lapply'是一個循環。 – Roland

+1

@Roland True,但它是編譯C代碼中的一個循環,所以對於新手R用戶來說這不是顯而易見的。 – Thomas

+1

是的,這是一個隱藏的循環,但需要注意的是它的性能並不比'for'循環更好。 – Roland

3

使用outer

length(unique(as.vector(outer(1:100, 1:100, "^")))) 
#[1] 9308