投稿

6月, 2014の投稿を表示しています

4選択肢10問の問題を考える(TokusiN法 13手)

4選択肢10問の問題がTwitterで流れてきていろいろ盛り上がっていました。

この問題というのは、数学、プログラミング系の問題で
・4選択肢の問題が10問与えられる
・考えても答はわからない
・回答するとが何問正解したかが返される
・回答する時は全部の問題で答を選択しないといけない
・全問の正解がわかるまでに何回の回答が必要か
・全問の正解がわかった後の最後の回答(全問正解で提出)は数に含めない
というものです。

中でもこれが気に入りました。
ちょまど問題の13手で確定させるアルゴリズム。 11111 11111 11111 22222 11111 33333 22222 44444 33333 44444 の5回をとりあえず試す。前半5問と後半5問それぞれに対して1~4の回答分布が確定できる— TokusiN (@toku51n) 2014, 6月 20

ワーストケースは回答分布が両方2111になった時。両方とも1が2問だったとする。 11112 11112 11112 11121 11112 11211 11112 12111 の4回で、後半5問のどれが1で、どれが2で、どれが「3か4」であるかが確定する。— TokusiN (@toku51n) 2014, 6月 20

11121 11111 11211 11111 12111 11111 で、前半も同じ事が確定する。 4,5,9,10問目が3 or 4の2択と分かった場合、 11131 11134で、全て確定させる事が出来る。— TokusiN (@toku51n) 2014, 6月 20

10問を5問ずつの2つに分ける方法で13手でいけるようです。

やり方を詳しく見ていきます。

まずは「5問ごとの答分布」を調べます。

「5問ごとの答分布」というのは、次の8つが求まることです。
A1 : 前半の5問のうち、答が1の問題の個数
A2 : 前半の5問のうち、答が2の問題の個数
A3 : 前半の5問のうち、答が3の問題の個数
A4 : 前半の5問のうち、答が4の問題の個数
B1 : 後半の5問のうち、答が1の問題の個数
B2 : 後半の5問のうち、答が2の問題の個数
B3 : 後半の5問のうち、答が3の問題の個数
B4 : 後半の5問のうち、答が4の問題の個数

手順1から手順5を行います。
手順1(11111 1111…

Swift資料の英単語 - ランキング

Swiftの資料(The Swift Programming Language)に出てくる英単語の出現回数を調べ、多いものから順に紹介する。
a the to ofなどの簡単なものは省く。function class protocolなどの、プログラム用語として特殊な意味を持っていて一般的な意味を説明してもあまり役に立たないものも省く。
過去形や複数形、比較級などの関連語がある場合はそのグループ内で一番多いものの回数を用いて順位付けしてある(手動なので多少のミスはあるかも)。
単語の意味は資料内での使われ方を軽く確認しそれに沿った意味を挙げるようにした。


出現100回以上
example 例 (following example 次の例)
expression 書き方
statement 書き方、expressionよりも広い範囲?
initialize 初期化する (initializer 初期化処理をするもの)
declare 宣言する (declaration 宣言)
grammar 文法 最後の方の文法説明の章でしか出てこない
reference 参照 (refer 参照する)
note 注意する Note that 〜に注意して下さい、と命令形で使われることがある
store 保存しておく
provide 供給する
following 次の、後に続く (follow 一緒にいく 後からいく)
above 上の 上に
define 定義する (definition 定義)
square 正方形の 四角い
access アクセスする
describe 言い表す 記述する
literal 文字通りの


コラム : かっこ
parentheses ()丸かっこ
square brackets []四角かっこ
(curly) braces {}
angle brackets <>
bracketはカッコ全般を意味する。


出現50回以上
computed 計算される
equal 同じで (equatable 平等な)(equality 平等)
syntax 統語法
behavior 振る舞い
condition 条件
requirement 要求されるもの、必要条件 (require 必要とする)
associate 結びつけて考える
designate 指定す…

Swift資料の英単語 - Welcome to Swift

実際に資料を読みながらわからなかった単語を記載していく。
英語は得意というわけではないので若干の誤りがあるかもしれない。
本文に合わせて多少変更した意味になっているところもある。
Welcome to Swiftの範囲です。

About Swiftpreliminary 暫定的な
herein この中に
is subject to change 変更される場合がある
the constraints of C compatibility / Cとの互換性という制限(束縛)
flexible 柔軟性に富んだ
clean slate 白紙状態
mature 成熟した
reimagine / re imagine
laid the foundation 土台を敷いた
stack 積み重ね
throughout ずっと
enabling framework adoption (いろいろ)可能にするフレームワークの採用?具体れを挙げていって最後に大きくまとめる流れか?
disruption 継続不可能、混乱
groundwork 土台作り
mix-and-match 異なるものをうまく組み合わせた
interoperability 相互互換性
unifies / unify 統合する
the procedural and object-oriented portions 手続き型の部分とオブジェクト指向の部分
industrial-quality 産業に用いられるレベルの質?
expressive 表現豊かな
innovative 革新的な
combine A with B / AとBを組み合わせる
compromise 妥協する
scale from A to B / AからBまでの領域
sound 頼りになる、適切な

A Swift TourTradition 長年のやり方
syntax 決まりに沿った表記方法(意訳)
string handling 文字列の扱い
accomplish 成し遂げる 達成する

Simple Valuesname (性質も含めて)名付ける? Swiftの定数機能は一度設定されてたくさん使われる値への命名に使うことが出来る?
explicitly 明らかに はっきりと 明確に
infer 推測する
In the example above 上の例では