多重ループを一重ループに変えるための範囲リスト作成へのコメント
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
SIZE(20){COLOR(red){多重ループを一重ループに変えるための...
よく理解できてはいないのですが,効果ははなはだ疑問です。
記述が簡単になるというのも,私には,逆に思えます。
アルゴリズムを,単純に記述するのがわかりやすくかつ速いの...
> n <- 200
> m <-100
>
> a <- function(n, m)
+ {
+ Range <- mult.range(1:n, 1:m)
+ for (x in Range) x[1] + x[2]
+ }
> system.time(a(n,m))
[1] 11.41406 0.03125 12.10156 0.00000 0.00000
>
> b <- function(n,m)
+ {
+ for (i in 1:n) for (j in 1:m) i+j
+ }
> system.time(b(n,m))
[1] 0.0703125 0.0000000 0.0859375 0.0000000 0.0000000
===== 追加
今,もう少し読んでいて,この添字の変化規則は R(または FOR...
R では,最初の添字が一番速く変化する。C では最後の添字が...
それをわきまえていれば間違いがないのですが,この添字規則...
----
この関数を考えざるを得なくなった理由は、あるプログラムで...
for (i1 in 1;10) {
for (i2 in 1;10) {
for (i3 in 1;10) {
for (i4 in 1;10) {
for (i5 in 1;10) {
for (i6 in 1;10) {
関数本体
}}}}}}
こうしたコードがあちこちにでてくると、エディタで全体を見...
> foo <- function () {
for (i in 1:10)
for (j in 1:10)
for (k in 1:10)
x <- 1 # ループの効果だけを見るため...
}
> foo1 <- function () {
for (i in Range)
x <- 1
}
> system.time(Range <- mult.range(mult.range(1:10,1:10),...
[1] 0.02 0.01 0.04 0.00 0.00
> system.time(for (i in 1:1000) foo())
[1] 0.93 0.04 1.07 0.00 0.00
> system.time(for (i in 1:1000) foo1())
[1] 0.48 0.00 0.50 0.00 0.00
終了行:
SIZE(20){COLOR(red){多重ループを一重ループに変えるための...
よく理解できてはいないのですが,効果ははなはだ疑問です。
記述が簡単になるというのも,私には,逆に思えます。
アルゴリズムを,単純に記述するのがわかりやすくかつ速いの...
> n <- 200
> m <-100
>
> a <- function(n, m)
+ {
+ Range <- mult.range(1:n, 1:m)
+ for (x in Range) x[1] + x[2]
+ }
> system.time(a(n,m))
[1] 11.41406 0.03125 12.10156 0.00000 0.00000
>
> b <- function(n,m)
+ {
+ for (i in 1:n) for (j in 1:m) i+j
+ }
> system.time(b(n,m))
[1] 0.0703125 0.0000000 0.0859375 0.0000000 0.0000000
===== 追加
今,もう少し読んでいて,この添字の変化規則は R(または FOR...
R では,最初の添字が一番速く変化する。C では最後の添字が...
それをわきまえていれば間違いがないのですが,この添字規則...
----
この関数を考えざるを得なくなった理由は、あるプログラムで...
for (i1 in 1;10) {
for (i2 in 1;10) {
for (i3 in 1;10) {
for (i4 in 1;10) {
for (i5 in 1;10) {
for (i6 in 1;10) {
関数本体
}}}}}}
こうしたコードがあちこちにでてくると、エディタで全体を見...
> foo <- function () {
for (i in 1:10)
for (j in 1:10)
for (k in 1:10)
x <- 1 # ループの効果だけを見るため...
}
> foo1 <- function () {
for (i in Range)
x <- 1
}
> system.time(Range <- mult.range(mult.range(1:10,1:10),...
[1] 0.02 0.01 0.04 0.00 0.00
> system.time(for (i in 1:1000) foo())
[1] 0.93 0.04 1.07 0.00 0.00
> system.time(for (i in 1:1000) foo1())
[1] 0.48 0.00 0.50 0.00 0.00
ページ名: