次のルール従って、宝石を配置していく。ただし、素直に解こうとすると計算量が爆発するので、メモ化するなどして計算量を抑える工夫が必要。
- 未配置の宝石があるときは、そのなかで最も小さい(aが最小)アルファベット を順に配置していく。
- 未配置の宝石がなくなったら、未配置の宝石の中に、取り除いた後の末尾よりも 大きいアルファベットの宝石が含まれるようになるまで末尾を取り除く。次に、 配置済の宝石の末尾より大きいアルファベットをもつ宝石のうち、もっとも
var StopIteration = Error('STOP_ITERATION'); | |
var util = { | |
array: { | |
clone: function(arr) { | |
var clone = []; | |
Array.prototype.push.apply(clone, arr); | |
return clone; | |
} | |
}, |
#!/usr/bin/env python | |
# -*- coding: utf-8 -*- | |
"""モンティ・ホール問題のシミュレーションで代表的な戦略の勝率を計算する.""" | |
__author__ = 'Orga Chem <orga.chem.job@gmail.com>' | |
__version__ = '0.0.1' | |
__date__ = '25 January 2014' | |
import random |
var util = {}; | |
util.array = {}; | |
util.array.remove = function(arr, obj) { | |
var i = arr.indexOf(obj); | |
var rv; | |
if ((rv = i >= 0)) { | |
util.array.removeAt(arr, i); | |
} | |
return rv; |
6文字(最短)
i%9||9
" NeoBundle ---------------------------------------------------------------- {{{ | |
" call neobundle#begin(___) ... call neobundle#end() の間に置いてください | |
" Vim でコマンドを実行して結果を表示するプラグイン「QuickRun」をインストール | |
NeoBundle 'thinca/vim-quickrun' | |
" テストを実行中、vimの動作をブロックしないようにするために「vimproc」をインストール | |
NeoBundle 'Shougo/vimproc' | |
" -------------------------------------------------------------------------- }}} | |
" |
" NeoBundle ---------------------------------------------------------------- {{{ | |
" call neobundle#begin(___) ... call neobundle#end() の間に置いてください | |
" Vim でコマンドを実行して結果を表示するプラグイン「QuickRun」をインストール | |
NeoBundle 'thinca/vim-quickrun' | |
" テストを実行中、vimの動作をブロックしないようにするために「vimproc」をインストール | |
NeoBundle 'Shougo/vimproc' | |
" rspec の一部のテストだけ実行できるプラグイン「neorspec」をインストール |
" Rubocopのインストールが必要です。 | |
" $ gem install rubocop | |
" $ rbenv rehash | |
" NeoBundle ---------------------------------------------------------------- {{{ | |
" call neobundle#begin(___) ... call neobundle#end() の間に置いてください | |
" Vim でコマンドを実行して結果を表示するプラグイン「QuickRun」をインストール | |
NeoBundle 'thinca/vim-quickrun' |