• 【gdgd備忘録】Linux版のSoftEtherVPNClientでVPNAzureの鯖に繋ぐ

    2015-06-19 04:26
    どうも(´・ω・`)きるひです.
    今回はタダの備忘録です.もし役に立つなら使ってください.
    さて,本題.

    自分は自宅に鯖があり,リモートでVPN接続が出来るようにしてあります.
    接続には回線契約の都合上,SoftEtherVPNのVPNAzure機能を利用しています.
    今回はLinuxで繋ぐ必要が出てきたため,レッツトライ.

    VPNAzureのサイトにはLinuxでもClientを使えば接続できる・・・
    と書いてあるのはいいものの,全く解説は無し.

    とりあえずClientをインストールして,マニュアルに従いコマンドでClientを操作する.
    Linux版のClientではルーティングテーブルの自動書き換えに対応してないだかどうとか.
    VPNサーバへのスタティックルートを追加するが必要であるらしい・・・.
    http://www2.softether.jp/en/vpn2/manual/web/11-1.aspx#vpn_11_1_28
    ↑ここの11.1.28より
    Clientの設定は以下のページを参考
    http://rauq04.blogspot.jp/2014/02/linux-softether-vpn-client-vpngate.html
    http://acuve.hatenablog.com/entry/2014/02/13/035913
    http://n73.jugem.jp/?eid=58

    さて,スタティックルートの指定先
    とりあえず指定に困ったので,whoisを利用して自分のアドレスを検索
    VPNAzureのサービスを利用している以上,アドレスの位置は筑波大学のサーバであるっぽい
    (というかそりゃそうだよなと検索してから気がついた)

    というわけでスタティックルートは筑波大学のサーバを指定して設定すればなんか繋がった
    現状1週間放置しても途切れなかったからまあつながってる・・・のかな?

    まあとりあえず以上(´・ω・`)
    適当に手探りで設定したので何か問題なりあったら教えて下さい(´・ω・`)

    またネタがあったらなんか書きます(´・ω・`)
  • 広告
  • 例の算数の問題を不真面目に解いてみた

    2015-05-26 02:01
    毎度どうも(´・ω・`)きるひです.

    少し前に動画を見ていたら
    http://ch.nicovideo.jp/gizmodo/blomaga/ar796473?ref=zero_marq&ver=video_q
    http://www.theguardian.com/science/alexs-adventures-in-numberland/2015/may/21/how-to-solve-the-maths-puzzle-for-vietnamese-eight-year-olds-that-stumped-parents-and-teachers
    こんなものが目に入ったわけですが・・・
    解こうと思ったけどめんどくさかったので適当に解いて(解かして?)みました(´・ω・`)

    というわけで まずは問題.

    こんな感じになってます.この空白には1~9の数字が入ります.

    これをまっすぐな数式になおすと,
    □+13×□/□+□+12×□-□-11+□×□/□-10=66
    となります.
    まあ,真面目に考えてもいいわけなんですが・・・,解説は載ってるので
    ここはC言語を使ってPCに解いてもらいましょう.

    というわけで上記の数式を配列x[9]に置き換えてCの数式の形で記述すると
    x[0]+13*x[1]/x[2]+x[3]+12*x[4]-x[5]-11+x[6]*x[7]/x[8]-10=66

    さて,ここに1~9を順番に入れていって答えが66になるものを見つければ良いですが
    通り数が多いのでとりあえず並び替えのプログラムを書くのがめんどくさい.
    というわけで,今回はとりあえず幾つか解がわかればいいやってことで,
    x[0]~x[8]に1~9の乱数を適当に発生させて後はPCにパワープレイで解かさせることに.

    こんなかんじにプログラムの仕様が決まったので,アルゴリズムを書いてみると,
    1,1~9の乱数を発生させる,この時に数字のかぶりが無いようにする
      (そのためのチェック部分を作る)
    2,数式に代入してその数値だった時の答えを求める
    3,条件を満たしたか確認する.
      正しい解が求められていたらループから離脱,駄目だったら繰り返し
    4,ループから離脱したら,結果を表示する.

    のようになります.並び替え書くよりも多分簡単っすね(´・ω・`)

    ここで,使用する数字を考えてみると,幾つか対策をしないといけない部分が出てきます.
    この数式には割り算が出てきますが,C言語の場合,数字を整数にしてしまうと,
    割り算時に小数部分が消えてしまいます.

    そこで,乱数は整数で発生させる一方で,計算は浮動小数点数で計算させることにします.
    よって,x[9]は浮動小数点数とし,乱数は発生時にキャストさせて代入します.
    これで66が正しく出てくる・・・ とおもいきや

    割り算で小数が出てきた後足すと小数部分が消える場合があるので,
    それを確認させる必要があります.これは条件判断のところに追加してやれば良いです.
    この判断は,先ほどの整数にすると小数が消えることを利用すれば良いので,
    (割り算がある項)-(割り算がある項を整数にキャスト)=0
    のとき求めたい解であると考えてみたり.

    ・・・で
    実際に解いてみると,なんだか答えが複数あるようなので,これを更にループでおいて
    適当に幾つか解を出させるために,更にループで囲って100回くらい計算させることに.

    さて,書いたプログラムを以下に張ってみます.(クソプログラムでも勘弁(´・ω・`))
    試してみたい方は適当にコピーして使ってください.
    (なおエラー吐いても対応出来ないのでご了承ください)
    ===========================================

    #include <stdio.h>
    #include <stdlib.h>

    int main(void)
    {
    double x[9];
    int i,j,k;
    double ans;
    int check=0;

    k=0;

    while(1)
    {
    while(1)
    {
    //乱数挿入(1~9)
    for(i=0;i<9;i++)
    {
    while(1)
    {
    x[i]=((double)(rand() % 9) + 1.); //x[i]の乱数を発生させる

    for(j=0;j<i;j++) //かぶっちゃや~よ
    {
    if(x[i]==x[j])
    check++;
    }

    if(check>=1) //かぶったかどうかチェック
    {
    check=0;
    continue;
    }
    //無事にかぶらなかったら次の乱数発生に進む
    else
    break;
    }

    }

    //数式チェック
    ans=x[0]+13.*x[1]/x[2]+x[3]+12.*x[4]-x[5]-11.+x[6]*x[7]/x[8]-10.;

    if(ans==66. && (13.*x[1]/x[2])-((int)(13.*x[1]/x[2]))==0 && (x[6]*x[7]/x[8])-((int)(x[6]*x[7]/x[8]))==0)
    break; //解が66になる かつ 割り算を含む項が個別に小数部分を持たないとき条件を満たす

    else
    continue; //駄目だったらもう一回行ってみよ~
    }

    //解の表示
    printf("%2.4lf ",ans); //まず一応66が解であることを表示
    ans=0;

    for(i=0;i<9;i++)
    printf(" %2.2lf, ",x[i]); //それぞれの値を表示

    printf("\n"); //表示し終わったら改行して見やすく

    //繰り返しループ判定
    if(k>100)
    break; //100回くらい繰り返しましょうね~

    else
    {
    k++; //100回に満たなかったらもう一回行ってみよ~
    continue;
    }
    }
    return 0;
    }

    ===========================================

    これによって次のような結果が得ることが出来ます.

    これを見ると,確かに元の問題の解説にある
    3 2 1 5 4 7 9 8 6 の順も,求められています.

    まあこんなかんじでいいんじゃないかなぁと謎の自己満足(ぉ
    というわけで今回は以上です.
    プログラムはご自由に使用してください.(煮るなり焼くなり課題に使うなり)
    なお何があってもクレーム等は受け付けませんので
    それだけ注意でよろしくお願いします(´・ω・`)
  • [検証]CPUクーラの性能比較をシミュレーションで行ってみる

    2015-05-07 03:07
    久々になにか書きます(´・ω・`)きるひです.
    そろそろ真面目なネタを書こうと思ったので投稿してみたり.

    大学の課題で熱流体シミュレーションソフトであるPhoenixを使用するものがあったので
    CPUクーラの性能比較を行ってみました.
    なお提出したのは前学期でその授業の単位が確定してから投稿しようと思っていたら
    すっかり書いてなかったのはお約束だったり・・・.
    (なお原本のレポートに対し一部(相当かも?)簡略化して記載します.ご了承ください.)

    さて,本題に入りますが,まずこれをやってみようかと思った元の話がこちら
    http://bbs.kakaku.com/bbs/K0000467640/SortID=17911113/#tab
    価格.comの記事ですが,フィン形状によって性能に差が出るという検証結果が出ています.
    それにより,サイズのCPUクーラである虎徹の性能が良くなっているようです.
    サイズの虎徹は,大小のフィンを組み合わせた形状をしています.
    その結果フィン間を通過する流速があがるために冷えると考えられています.
    (というかそれが虎徹の設計における特徴なんでしょうが・・・.)

    この実験結果を裏付けるために,簡易的な解析モデルを作成しシミュレーションを実際に
    してみようと思います.

    まず比較対象ですが,この実験がなされているCPUクーラの中で,虎徹とフィン枚数,
    フィン形状,ヒートパイプ数等が同様のEnermax製ETS-T40を使用します.
    (ちなみに丁度自宅にこれがあったため,採寸がしやすかったのもあります・・・.)
    サイズの虎徹は採寸するためにいつものアキバのツクモ本店で買ってきました.
    製品URL:虎徹
    http://www.scythe.co.jp/cooler/kotetsu.html
    製品URL:ETS-T40
    http://www.enermaxjapan.com/cpu-cooler/ETS-T40/ETS-T40-TB.html

    それぞれの仕様はURLをご覧ください.(レポートの方は真面目に書いた

    次にモデルを製作しますが,解析に使用するPCが利用できる時間の都合上モデルを簡易に
    しなければなりません.
    そこで,以下のような簡易モデルとします.
    ・フィン枚数の削減と解析空間の縮小
     解析対象のフィン枚数はともに58枚となっていて,このままでは多すぎるため,
     枚数を減らすこととします.虎徹がよく冷える理由としてあげられる特徴が,
     大小フィンを組み合わせていることであるため,減らせる最小枚数があります.
     虎徹のフィンは 大-小-小-大-小-小-大-・・・ となっているため,
     最小枚数は4枚と考えられる.今回は小さいフィンが挟まっていることの影響を
     確認するため,大-小-小-大と取り出すこととします.
     ETS-T40は同じ形状のフィンのため,同じものを4つとします.
    ・ヒートパイプの本数と熱源位置
     ヒートパイプは本来4本であるが,解析を容易にするため,1本が中心にあるとします.
     また,ヒートパイプはCPUから熱を持ってくるものであり,熱源は本来CPUですが,
     ヒートパイプにCPUからの熱が等しく分散されているとして,ヒートパイプの部分を
     熱源とし,CPUの熱量を250Wとして,(4/58)/2をしたものを2箇所設置します.
    ・ファンからの送風量
     本来ファンからの風は,ファンが回転しているため,回転方向の速度がかかっています.
     また,ファンからの流速はファンとフィンの位置関係により遅い位置が存在しますが,
     今回は,以下のURLの数値を利用しフィンに並行で一様な風が流れるとします.
     http://www.nagao-ss.co.jp/fanlab120mmdate.htm

    このような条件とし,解析モデルを作成します.フィンのモデルは3DCADでスケッチを
    押し出したものを使用します.

    ▲虎徹の解析モデル

    ▲ETS-T40の解析モデル

    これによって解析した結果がこちらです.結果では中間のフィンに注目をします.


    ▲虎徹の結果(速度)

    ▲ETS-T40の結果(速度)

    まず速度を見ると,虎徹の方が確かに流速が速くなっています.ここで見るポイントとしては
    ETS-T40では上端の流速がフィンへの流入速度ですが,虎徹の場合は中間フィンが小さいため
    上端ではなく,その手前の点が流入点になります.(そもそもそれが特徴ですが・・・)


    ▲虎徹の結果(温度)

    ▲ETS-T40の結果(温度)

    さて,温度を見ると,確かにフィン全域おいて虎徹の方が温度が低くなっています.
    フィンが全体的に冷えているということから,クーラーとしての性能が高いと言えると
    考えられます.よって,実験の結果が裏付けられたと言えると考えられます.

    また,この流速の数値は連続の式により計算すると大体シミュレーション結果と近い値が
    算出できます.
    ・・・が,面倒なので気が向いたらまた書きます(´・ω・`)

    というわけでこんな感じなことをしてたよみたいなものを書かせて頂きました.
    なお,採寸に使った虎徹は自分が所属するももいろ同盟の方に組んだPCに使ったものです.
    採寸させていただきありがとうございました(´・ω・`)

    そういえば虎徹と同様にフィンを設計した忍者四がサイズから発売されましたが,
    こっちの性能はどうなんでしょうね・・・?
    (アイエエエエ! ニンジャ!? ニンジャナンデ!?)

    というわけで以上
    次はもっと真面目な記事がかけたらいいなぁ・・・.