So-net無料ブログ作成

Haskellのメモリ使用量 [Haskell]

Haskellで,AOJ (Aizu Online Judge)のMaximum Profitに挑戦している.

最初は演算量にも難儀してTime Limit Exceededの壁を越えられず苦労していたんだけど,こちらの方は「プログラミングコンテスト攻略のためのアルゴリズムとデータ構造」を読んでO(n)のアルゴリズムが分かったので解決.(目から鱗)

ところがMemory Limit Exceededエラーの壁を越えられない.

以下が現在のコード.
ans' m a [] = a
ans' m a (x:xs) = 
  let m' = min m x
      a' = max a (x-m)
  in
    ans' m' a' xs

ans x = 
    let (x0:x1:xs) = x
        init_max  = x1 - x0
    in
      ans' x0 init_max (x1:xs)

main = do
    n <- getLine
    c <- getContents
    let i = map read $ lines c :: [Int]
        o = ans i
    print o

これで,Case #37でメモリ使用量が2.6GBとなってしまう (制限は140MB).

うーんなんでだろう? アルゴリズム自体はメモリ量を必要とするものではないし,getContentsもLazyなはずだから必要に応じて読み出されると思うのだけど..

getContentsがバッファリングしているということだろうけど,バッファリングの量を制御する方法はあるんだろうか?


プログラミングコンテスト攻略のためのアルゴリズムとデータ構造



にほんブログ村 自転車ブログ ブルベへ
にほんブログ村

BRM218 満喫相模湾 [ブルベ]

ランドヌ東京のBRM218 東京300 満喫相模湾に参加してきました.

このコースは去年も走っていて,また先月の伊豆高原300でも似たコースを走っています.昨年大室山を登ったときには「もうすぐ頂上と思ってからが長い」という印象でした.シーズン始めの登りコースとしては侮れないコースと思って走りました.

なんですが,スタート前 Garmin eTrexを起動したところ,ルートデータが入っていない!PCからコピー後確認をサボってしまいました.慣れが油断になってしまっています.

仕方がないので,今回はGarminなしで,記憶とキューシートを頼りに走ることにします.

序盤は追い風に運ばれる展開です.スタートが早かったせいかスタート直後からソロ走でした.「何かあったのか?」と疑うほど周りに誰もいませんでしたが,瀬谷あたりでようやく何人かに抜かれました.それでも人はまばらで,私を抜いていく人たちは速くてとてもついていけずやっぱりほぼソロ走で走りました.

大室山は去年の印象があったので,心が折れないように用心して登りました.標高こそ高くないですが,シーズン始めの登りとしてはなかなか登りごたえがありました.

大室山からの下りはすごく怖かったです.斜度が急で60km/hくらい出て,路面が悪く自転車がガタつきブレーキで止めきれず.バイクの整備状況が悪いのでしょうか?他の人はどうだったでしょうか?

PC2で昼食を摂り復路をスタートしましたが,のっけからの向かい風で心が折れました.ここから先のコースはチャレンジングなところはあまりなくモチベーションが上がりません.珍しくDNFの3文字が頭に浮かびました.

まあでもとりあえずゆっくりマイペースで進むことにしました.道中,「向かい風でしんどい気がするけど,自分の出力が同じならばしんどさが変わらないはず.しんどさは同じで速度が落ちる分走行時間が長くなるだけ」なんて悟りを開きながら淡々と漕ぎ進めました.

タイムとか気にせず淡々と走って15時間1分でゴール.最後のコンビニでビール買うとき銘柄で迷わなかったら15時間切れたかな.

ABEFGHI
1
距離[km]到着時刻区間平均クローズ貯金
2
START01/28 6:001/28 6:300.50とどろきアリーナ
3
PC1471/28 7:5823.901/28 9:211.38デイリーヤマザキ平塚北豊田店
4
PC2127.91/28 11:4921.011/28 16:044.25セブンイレブン伊東八幡野店
5
PC3 243.41/28 17:4119.691/28 22:565.25セブンイレブン横須賀5丁目店
6
GOAL300.91/28 21:0117.251/29 2:004.98ローソン武蔵中原北口店

行程表は上の通りです.後半20km/hを切るペースになりました.

参加者のタイムをヒストグラムにしてみました.DNS 8人,DNF 12人とのことでした.

brm218.png
にほんブログ村 自転車ブログ ブルベへ
にほんブログ村

stack setupが遅い [Haskell]

Haskellのbuild環境の構築にはstackを使っているのですが,新しくセットアップしたLubuntuでstack setupしたところ,ghcのダウンロードがものすごく遅いという現象に悩まされました.

% stack setup
とするとghc-8.0.1のダウンロードが始まりますが数十kbps程度しかでず100MBのアーカイブのダウンロードに一体何時間かかるのか?という状況でした.

vmplayのネットワーク設定を疑うなど試行錯誤しましたが,結局のところ,以下の情報をもとに,proxy経由でアクセスするようにしたところ解決しました.

stack setup download incredibly slow

https_proxy=124.32.141.184:3128 stack setup

知らないproxyを通してアクセスするのは気持ち悪いですが...
タグ:Haskell Lubuntu
にほんブログ村 自転車ブログ ブルベへ
にほんブログ村

FreeBSD-11.0 に python-3.6をsetup [FreeBSD]

TensorFlowを勉強してみたくて,FreeBSDにpython3.6とTensorFlowをsetupする.
なお,これまでpythonを触ったことはない.

1. python-3.6のinstall

今日時点の最新のpackageが3.6だったのでpython-3.6を使ってみることにした.

# pkg install python36

2. pipのsetup

pipとはpythonのパッケージ管理システム.python-2.7まではFreeBSDでは独立packageとして提供されていたが,3.4以降はensurepipを使うらしい

# python36 -m ensurepip

これによって,/usr/local/bin/{pip3, pip3.6} というファイルが作られるようだが,checksumを見る限り同じものっぽい.

3. tensorflow のinstall

# pip3 install tensorflow

としたところ,
Could not find a version that satisfies the requirement tensorflow (from versions: )
No matching distribution found for tensorflow
と言われて先に進まない.

pipのversionが古いとダメらしいというので
# pip3 install --upgrade pip
# pip3 install --upgrade setuptools
としても効果なし.

...どうやら,FreeBSDでTensorFlowを使うにはsourceからinstallする必要があるらしい...

HOWTO: Install Tensorflow on FreeBSD

タグ:Python Tensorflow
にほんブログ村 自転車ブログ ブルベへ
にほんブログ村

BRM128 東京300 伊豆高原 [ブルベ]

R東京の伊豆高原300に参加してきました.寒さが気になるこの時期のブルベでしたが,結果的には終日を通して天気がよく気持ち良いブルベでした.

特に風には恵まれました.行きも帰りも軽い追い風で軽快に進むことができました.結果,14時間12分と,自分的には300kmとしていつになく早いタイムでゴールすることができました.

装備は前回のBRM109と同じ装備で臨みました.木綿の下着の上にインナーとして長袖ジャージを着,その上にパールイズミの15度のジャージを着て,モンベルのウィンタージャケットで出走し,予備の防寒着としてMont-Bellの雨具を持参しました.

結果として雨具を取り出すことはなく,上記服装で日中は暑いくらいで夜はちょうど良い感じでした.


ABEFGHI
1
距離[km]到着時刻区間平均クローズ貯金
2
START01/28 6:001/28 6:300.50とどろきアリーナ
3
PC1471/28 8:0622.381/28 9:211.25ファミリーマート逗子渚橋店
4
PC2151.11/28 12:5621.541/28 16:043.13ローソン伊豆高原店
5
PC3 254.21/28 17:4121.711/28 22:565.25ファミリーマート逗子渚橋店
6
GOAL300.71/28 20:1218.481/29 2:005.80ローソン武蔵中原北口店



参加者のタイムをヒストグラムにしてみました.

hist.png

DNS 19名,DNF 5名だったそうです.
にほんブログ村 自転車ブログ ブルベへ
にほんブログ村

BTCJPY 2017-01-01 - 2017-01-31 [Bitcoin]

2017-01-01から2017-01-31までのBitcoinの価格データを置きました.zaifのtickerを10秒おきに取得したものです.

https://www.dropbox.com/sh/a6o4glw7qvt3uzv/AACp7EJkonSmJCg2S2K0Cou7a?dl=0
にほんブログ村 自転車ブログ ブルベへ
にほんブログ村