裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

算額--2022年

2022年01月01日 | ブログラミング

あけましておめでとうございます

ほんねんもよろしくおねがいします

去年の秋頃,ザッピング中に見た算額
もしかしたらどこか間違いがあるかもしれないが
大きな円(青)の中に,三種類の円(赤,緑,黒)が詰め込まれている
それぞれの円は 1 点で接している
三種類の円の半径を大きな円の半径で表しなさい

この図を書いたのは解が得られたからではない
近似的にこんなふうになるということで
今まで,折りに触れ考えてきたが,わからない

今年中に解決できるだろうか

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

パイプって,便利なの?

2022年01月01日 | ブログラミング

関数のネスト表示 a(b(c(d(x)))) が醜いというので x |> D |> C |> B |> A としましょう!ということである。もともとの関数 a, b, c, d はそのままでも良いこともあるが,パイプで受け渡されるデータが第一引数でなければならないという制約で,A, B, C, D という亜型関数が必要になる。ユーザ側で定義することもできるが,胴元は自分の好きなように関数をつくることができる。一般ユーザはそれを使わざるを得ない。

例えば,

1 F T T F F F F F F F T 
2 F T F F F F F F F F T 
3 F F F T F T T F F T F 
4 F F T F F F F T F F F 
5 F F F F F F F F F F F 
  :

のようなデータを読んで,

11×11 Matrix{Int64}:
   0  59  62   86  61   86   89   84  56  145   82
  59   0  33   55  41   52   47   49  42   48   54
  62  33   0   44  31   51   45   46  35   56   56
  86  55  44    0  73  173  167   97  63   89   71
  61  41  31   73   0   75   60   54  42   63   54
  86  52  51  173  75    0  170   71  54   90   66
  89  47  45  167  60  170    0   77  45   85   64
  84  49  46   97  54   71   77    0  60   78  144
  56  42  35   63  42   54   45   60   0   52   52
 145  48  56   89  63   90   85   78  52    0   86
  82  54  56   71  54   66   64  144  52   86    0

のような集計表をつくる。

具体的には,ファイルの1列目を除いて,読み込んだデータを x として行列乗算 x' * x を計算し,対角成分を 0 にする。だけの話だ。

これをパイプを使って書くためには,余分な関数を定義しないといけない(のだろうなあ)。

Matrix はすでにあるものを使える。
x' * x は単純な処理だが,関数にしないといけない。
同じく,対角成分を 0 にするだけのくだらない関数を書かないといけない。

using CSV, DataFrames

matmul(x) = x' * x
function diag_zero(x)
    for i in 1:size(x, 1)
        x[i, i] = 0
    end
    x
end 

出来上がったパイプは,こうだ。

x = CSV.read("sampledatacross2.csv", DataFrame, truestrings=["T"], falsestrings=["F"], drop=[1]) |> Matrix |> matmul |> diag_zero

どこがわかりやすい?
余分な関数定義は自分で定義するか,誰かに頼んで,定義しなくても使えるようにしてもらうしかない。

必要な関数はどんどん増える(いちいち定義しなくてはならないかもしれないのだ)。

コメント (1)
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

PVアクセスランキング にほんブログ村

PVアクセスランキング にほんブログ村