外部プログラム実行のタイムアウト処理(Ruby)

数か月放置し続けた問題


次のような動作をするプログラムを考えます。
  1. 時間のかかりそうな外部プログラムを実行する。
  2. 外部プログラムが終了したら、外部プログラムの標準出力を拾って、それを表示する。
  3. 2秒以内に終わらなかったら、外部プログラムをKILLする。

簡単そうですね?

実行環境はwindowsです。


続きを読む

スポンサーサイト

テーマ : プログラミング
ジャンル : コンピュータ

tag : Ruby

C++でrubyのinjectっぽい文を書く

そもそもRubyのArray.injectって何ぞ?

https://www.google.co.jp/search?q=ruby%20inject


arrayの総和と最大値を求めるプログラムをinjectを使って書くと、次のようになる。
(もっとすっきりとした書き方はある)
arr = [1,2,3]
sum = arr.inject(0){|s,e| s=s+e ; s}
max = arr.inject{|s,e| s = e if s < e ; s}

これをC++で使いたい。

続きを読む

テーマ : プログラミング
ジャンル : コンピュータ

tag : c++ Ruby

探索問題

特に難しい話ではないんだけれども。復習を兼ねて。


こんな問題を考える。

横Wマス縦Hマスのフィールドがあります。
フィールド上には床マスと岩マスの2種類のマスがあります。

岩があるマスは通り抜けることが出来ません。
ただし、岩の移動先が床マスである場合、岩を押すことが出来ます。

床マスのうち、1箇所をスタート地点、別の1箇所をゴール地点とします。
スタート地点からゴール地点に到達できるでしょうか?

…どこかで似たようなコンテストがあった気がしますが。

入力はこんな感じ。期待される答えはYES。
外周2マスは岩マスであることが保証されている。つまり、ちゃんと実装すれば外枠判定を実装しなくても良い。
12 10
@@@@@@@@@@@@
@@@@@@@@@@@@
@@....@..@@@
@@.S.@.@.@@@
@@...@@@@@@@
@@..@@.@..@@
@@@@.@@.G.@@
@@...@....@@
@@@@@@@@@@@@
@@@@@@@@@@@@


2016/10/25 修正

続きを読む

テーマ : プログラミング
ジャンル : コンピュータ

tag : アルゴリズムとデータ構造 Ruby

rubyのarrayのデータ操作計算時間

結局よく分からなかった。


codeIQ sandboxより確認してみた。ソースコードは追記より。n = 30000。
前方取り出し、前方挿入 0.8s
後方取り出し、後方挿入 0.01s
前方取り出し、後方挿入 0.66s
後方取り出し、前方挿入 0.16s

かなり差が出ている。


Ideoneがruby-2.1だったので、こちらで確認してみる。
速いので、n = 1000000で検証。既に何か違いを感じる。

前方取り出し、前方挿入 0.57s
後方取り出し、後方挿入 0.55s
前方取り出し、後方挿入 0.57s
後方取り出し、前方挿入 0.56s

差は無いですね。気にする必要は無さそう。


codeIQでrubyを提出する際は、ジャッジシステムが更新されない限り、配列操作は控えた方が良いかもしれません。
queueの実装どうするんだろう。

ruby1.9は動作が遅い等の記事がいくつかあるようです。

続きを読む

テーマ : プログラミング
ジャンル : コンピュータ

tag : Ruby

プログラミングコンテスト等のテストジャッジプログラムを軽く作る

今月分の記事が少ないので、うるう日に書いてます。

WS000128.jpg

codeIQやyukicoder、Atcoder等のプログラミングコンテストでありがち。

解答者が作成したプログラムが正しいかどうか自動採点するアレを軽く作ります。

続きを読む

テーマ : プログラミング
ジャンル : コンピュータ

tag : Ruby

プロフィール

舞葉(ぶよう)

Author:舞葉(ぶよう)
github.io
はてなブログ(競プロ)

古い記事のソースコードは色分けしていないので、高機能テキストエディタに貼り付けたほうが見やすいかも。

検索フォーム
このブログについて
自分がつまづいた話題、なんとなく書きたいと思ったこと、ググったけど殆ど資料なかったぞオイ な話等をアップする予定。通りすがりでも、参考になっていただければと。プログラムの例外入力、メモリリークは責任負いません。投稿された記事は修正・削除する場合があります。
カテゴリ
タグ

HSP3アルゴリズムとデータ構造c++JavaRubyUnity画像解析C機械学習C#LinuxcodeIQKinectMinecraftTonyuSystemraspberrypiPythonHTML5音声制御Simulinkruby俺ルール通信制御Javascriptシミュレーション

counter-shinobi
固定記事
最新記事
最新コメント
月別アーカイブ
ブロとも申請フォーム

この人とブロともになる

アクセスランキング
[ジャンルランキング]
コンピュータ
1815位
アクセスランキングを見る>>

[サブジャンルランキング]
プログラミング
333位
アクセスランキングを見る>>