ATO's blog

メモとか日記とか

シャープマーカーのすすめ。ついでにお勧めギア考察。

特徴

目の付け所がシャープな武器。

連射力、射程、威力*1はほぼワカバシューターと同レベルだけどワカバと比べると集弾性がかなり高く、狙ったところに素直に飛んで行ってくれる。けど元々の射程が短すぎるので広がろうと集まろうとしっかり当てれる範囲はあまり変わらないかも。ワカバは運が悪いと相手に全然当たらないので、その分ワカバより遠くからでも倒しやすい。

立ち回り

シャープマーカーより射程が長い武器*2と正面から撃ちあうのは自殺行為。他のシューター系武器と同様、基本は敵の死角から一気に近づいて一気に倒して即離脱するヒットアンドアウェイを行う。
また、サブのキューバンボムとスペシャルのボムラッシュの相性がとてもよく、適当に投げまくるだけで場を制圧できる。
ただしキューバンボムは爆発するまでがかなり遅い。何も考えず最前線でボムラッシュを開始すると速攻で潰されるので、少し後ろに下がって味方の後ろから投げまくるといい。味方のサポートにもなる。
もしボムラッシュ中に敵に近づかれた場合はボムを投げるのを中断してシャープマーカーを使って応戦する事も忘れない。
スペシャルを使うとインクが全回復するので、インクに余裕があるときはボムを投げてからスペシャルを開始するとインクに無駄がなく、実質1回多くボムを投げられる。
Rを連打しているとボムラッシュが終了してもボムを投げてしまいがちなので注意。だいたい無駄になるうえにインクがごっそり持っていかれてしまう。

キューバンボムラッシュが出来るのはシャープマーカーだけ*3なので、他の性能が似通った武器との重要な差別点となる。

おすすめギア

優先度高

ボム飛距離アップ キューバンボムがかなり使いやすくなる。当然スペシャルのボムラッシュにも効果が乗る。ほぼ必須レベル。
スペシャル増加量アップ シャープマーカーの強さの7割はスペシャルによるものなのでこれも重要。元々塗り性能が高いので相性もいい。
スペシャル時間延長 ボムを投げられる数が増える。ギア無し状態だと最大11個のボムを投げられるが、メインに1個付ければ12個投げられるようになる。逆に、サブに1つ2つ付けるだけでは効果は無い。

優先度中

安全シューズ 7月1日のアップデートで弱体化。敵のインクにかなり足を取られるようになった。しかし依然使い勝手がよく、他のクツ専用ギアより重要度は高い。クツ専用。
マーキングガード センサーを付けられると短射程武器はかなり不利になるのであると安心できる。フク専用
インク効率アップ(サブ) メイン3つ積んでもキューバンボム2連発は出来ないのが残念だが、あればボムを使った後の戦える時間が増える。
攻撃力アップ シャープマーカーは素の火力が26.0と確定4発ギリギリのため、防御力アップをメインに1つ入れられると確定数が落ちる。サブに一つ付けておくと、防御力アップをメインに1つ付けている敵まで確定4発圏内にできるためあると便利。サブ1つ以上つける意味は薄い。
スペシャル減少量ダウン 敵にやられてもすぐスペシャルが使用可能になる。ただし、死なない事の方が重要なため優先度は下がる。
イカダッシュ移動速度アップ シャープマーカーに限らず、たいていの武器で有効。やられた時の前線復帰能力や逃げ力が上がる。

優先度低

ボムサーチ ボムラッシュ中に敵にキューバンボムを使われると自分の投げたボムに紛れて気が付かずにやられてしまう事がたまにあるのであると便利。クツ専用。クツのメインを使ってまで必要かと言われると微妙。
逆境強化 スペシャルが使いやすくなるが、元々塗り性能が高い上、たいてい味方の数が減る原因は最前線で戦う短射程の武器(つまり自分)なのであまり恩恵を受けられないかも。絶対に死なないという自信がある人向け。アタマのメインギアを使うのでこのギアを使うよりスペシャル増加量アップをメインにしたほうがいいと思う。アタマ専用。
イカニンジャ ステルス能力が大幅アップする。そのかわり移動速度がかなり遅くなる。インクに潜んで近づく間に敵がばら撒いたインクに当たって居ることがバレる事もしばしば。フク専用。

その他のギアはつけるメリットあまりないかも。

まとめ

上記を踏まえて手持ちの装備を組み合わせた結果がイカの通り。

スペシャル優先
f:id:ato1234:20150704205024j:plain

ボムの飛距離優先
f:id:ato1234:20150704205029j:plain

使いやすいのは飛距離優先装備だけど勝率が高いのはスペシャル優先。
やっぱりシャープマーカーの強さの大半はボムラッシュだ。

この武器の最大の欠点は調子に乗ってボムを投げまくると処理落ちする事。

*1:ちょっと低い

*2:ほぼ全武器

*3:ラピッドブラスターデコもできるけどそもそもラピッドブラスターの性能が微妙なので考えない物とする

CodeIQ「フィズバズエクストリーム問題」に提出したコード

問題

codeiq.jp

10^9 以下の正の整数のうち、

3, 5, 7, 11, 13, 17, 19, 23, 29, 31

の少なくともどれか一つの倍数となるものの総和を求めてください。

提出したコード

rubyです。

def sum(n, x)
  x * n * (n + 1) / 2
end

def f(n)
  list = [3, 5, 7, 11, 13, 17, 19, 23, 29, 31]
  i = (1 << list.size)-1
  s = 0

  while (i > 0) do
    k = 0
    x = 1
    a = -1

    while ( (i >> k) > 0 ) do
      if (i >> k) & 1 == 1
        x *= list[k]
        a *= -1
      end
      k += 1
    end
    
    s += sum((n / x).floor, x) * a
    i -= 1
  end
  s
end

p f(10 ** 5)
p f(10 ** 9)

方針

等差数列の和の公式を使えばいい事はすぐに分かるけど、各素数の倍数の数列をそのまま足したのでは共通部分(3の倍数の数列と5の倍数の数列なら15の倍数の数列)を重複して加算してしまうからこれをいい感じに足したり引いたりして修正する。
コードをいろいろこねくり回してたら、奇数個の素数を掛け合わせた数(3とか3*5*7とか)の倍数の時は加算して、偶数個の素数を掛け合わせた数(3*5とか3*5*7*11とか)の倍数の時は減算すればいい具合になった。

何故なのかは最終的によくわからなかったけど、フィードバックによると包除原理というそのものズバリな原理があるらしい。(もう少し早く知りたかった)
包除原理 - Wikipedia

あとは素数の組み合わせをビットを使って表現してループを回して計算するだけ。
これでループ回数が10^9回から2^{10}-1回まで短縮できる。(素数の数のみに依存するようになる)

実行時間はうちの環境で、何も考えずに10^9回ループさせたら1時間ちょっとくらい。上のコードだと0.5秒くらいだった。

他に挑戦された方の回答

自分は解くだけで精いっぱいだったけど、ゴルフしてる方もいるそうです。
数行で書いてるのは凄すぎる。togetter.com

スプラトゥーンのチャージャー性能比較メモ

みんな大好きスナイパー。
スプラチャージャー、スクイックリン、リッター3Kの性能を比較してみる。
はたして戦い方がまるで違う(特にスクイックリン)これらを同じカテゴリで扱っていいのか

各武器について、ノンチャージ、1/4チャージ、1/2チャージ、3/4チャージ、フルチャージ時の塗り範囲と威力をまとめた。
なお、チャージ具合については全て目測なのである程度は誤差がある。

射程距離

全て初期位置、カメラ固定
表の1/4や3/4等はそれぞれフルチャージを1とした時のチャージ量の割合

スプラチャージャー スクイックリン リッター3K
0
1/4
1/2 [
3/4
1 *1

比較のためのスプラシューター


リッター3Kの射程が圧倒的に長く、フルチャージなら初期位置から一番奥の人形を撃ちぬける。実際に使ってみると(使われてみると)意味の分からない距離から当たったり当てられたりする。
逆にスクイックリンの射程はお世辞にも長いとはいえず、リッター3Kの半分程度。スプラシューターよりはほんのちょっとだけ長いが基本的に正面からの撃ちあいは厳しい。立ち回りが重要。
スプラチャージャーは他二つと比べると可もなく不可もなくといったところ。

チャージ時間(秒)

スプラチャージャー スクイックリン リッター3K
1.05 0.76 1.69

ジャンプ中はチャージ時間が極端に遅くなる点に注意したい。
スクイックリンですら高台からジャンプした1.6秒程度の間に半分ほどしかチャージできなかったため、チャージ速度は1/4程度になっているものと思われる。

ダメージ

スプラチャージャー スクイックリン リッター3K
0 40.0 40.0 40.0
1/4 55.0 47.5 57.3
1/2 66.5 57.2 77.3
3/4 86.1 70.2 100.8
1 160.0 140.0 180.0

リッター3Kなら3/4程度チャージした時点でスプラチャージャー並の射程と相手を一撃で倒せる火力が出てくるようだ。
3/4チャージするまでに1.2秒程度かかるが、あまり距離の離れていない敵に対しては早撃ちできるので有効かもしれない。

各チャージ段階における一秒当たりのダメージはイカの通り。

スプラチャージャー スクイックリン リッター3K
1/4 57.01 39.34 41.07
1/2 50.36 45.11 44.27
3/4 58.40 52.81 48.11
1 114.014 131.15 83.09

誤差を考慮すると、基本的にはチャージ時間に比例して与えるダメージが多くなるが、最後のフルチャージになる瞬間にダメージが跳ね上がるようだ。

サブとスペシャ

武器 サブ スペシャ
スプラチャージャー スプラッシュボム ボムラッシュ
スプラチャージャーワカメ スプリンクラー メガホンレーザー
スクイックリンα ポイントセンサー バリア
スクイックリンβ トラップ スーパーショット
リッター3K クイックボム スーパーセンサー
リッター3Kカスタム ジャンプビーコン ダイオウイカ

サブやスペシャルの細かいことはwiki見たほうが早いよ


イカ、いくつか試しに使ってみた感想

スプラチャージャーワカメ

届きそうで届かない、届かなさそうで届く絶妙な射程。ジェットスイーパーは天敵。
敵陣の中ほどにスプリンクラーを設置して、壊しに来た敵を倒せるととても気持ちがいい。
当然相手もそんな事は読んでいるので逆に狩られないよう注意。
メガホンレーザーは乱戦している場所にむけて適当にぶっぱするだけでも結構強いが、思ったより範囲は広くないからあまり当たらない。
味方のサポートに。

スクイックリンβ

射程がかなり短いため、単純に高台から狙撃するようなスナイパーとしての運用は難しい。
敵に接近しなければ攻撃が当たらないため、他二つと比べても特にAIM力が重要な武器。
サブのトラップはとても優秀。敵の近くまで攻め込む関係で結構ひっかけれる。
しかし上級者が相手になると普通によけられたりするので気が抜けない。
スーパーショットを手にすると一気に強気になれる。(強くなるとは言っていない)

リッター3K

ザ・スナイパーな武器。上手いリッター使いに高台をとられると一方的な虐殺になる事もしばしば。
長いチャージ時間もそれを補って余りある射程のおかげで気にならない。
近づいてきた敵に対してもクイックボムで無理やり殴り勝つ事も可能。さらにスーパーセンサーで隠れることも許さない。
ただし、AIM力が求められるのは当然だがその上で通常射撃もクイックボムもインクの消費量が激しいため、楽しく撃ちまくってるとすぐインク切れになり何もできないまま倒されてしまう。インク残量に注意したい。

*1:リッター3Kをフルチャージで撃った場合は奥にいる人形に当たるため本当はもう少しだけ射程が長い

スプラトゥーンの攻撃力アップギア、防御力アップギアについてのメモ

ギアの数や位置によって倍率が違うらしいので実際に試してみた。
武器の試し打ちエリアにいるイカ人形を相手にする。

とりあえずギアが上段についてるのをメイン、それ以外をサブとしてまとめた。

攻撃力アップギア

使用武器:.52ガロン

ギアの数(メイン) ギアの数(サブ) ダメージ 倍率
0 0 52.0 1.0000
0 1 53.5 1.0288
0 2 54.9 1.0558
0 3 56.2 1.0808
1 0 56.7 1.0904
2 0 60.6 1.1654
3 0 63.6 1.2231
1 1 57.9 1.1135
1 2 59.1 1.1365
1 3 60.2 1.1577

手持ちのギアが少ないのでこれだけしか調べられなかった…。

特筆すべきはメインギア1つでサブギア3つより効果が高い点。
メインギアの選び方が特に重要なことが分かる。

もう一点、攻撃力アップギアについては注意しなければいけない点がある。
それは、素の攻撃による確定数を変えることができないという点だ。

例えばプライムシューターの場合、素のダメージは42.0で確定数は3発。
一発のダメージを50.0以上に出来れば2発で倒せることになり、かなり凶悪な性能になる。
その為には倍率を1.1905倍以上にできればいい。
実際にやってみたダメージ表はイカの通り。

ギアの数(メイン) ギアの数(サブ) ダメージ 倍率
0 0 42 1
1 0 45.8 1.0905
2 0 48.9 1.1643
3 0 49.9 1.1881
3 1 49.9 1.1881

この通り、メインギア2つまでは概ね.52ガロンの場合と同じ倍率でダメージが推移するが、3つ以上になるとダメージが49.9から増えなくなる。

そのため、攻撃力アップをガン積みするビルドにあまり意味は無く、他の種類のギアを付けるほうがいい。

防御力アップギア

試し打ちエリアのスロープを上がった先にいるイカ人形はよく見ると防御力アップギアを積んでいる。
こいつらを的にして試してみる。

使用武器:.52ガロン

人形のギア 攻撃力アップ(メイン) ダメージ 倍率
0 0 52.0 1.0000
1 0 49.3 0.9481
2 0 47.2 0.9077
3 0 45.5 0.8750
0 1 56.7 1.0904
1 1 52.0 1.0000
2 1 49.8 0.9577
3 1 48.1 0.9250
0 2 60.6 1.1654
1 2 55.8 1.0731
2 2 52.0 1.0000
3 2 50.3 0.9673
0 3 63.6 1.2231
1 3 58.9 1.1327
2 3 55.0 1.0577
3 3 52.0 1.0000

防御力アップギアは攻撃力アップギアと違って確定数をずらせるようだ。

ちなみにプライムシューターの場合

人形のギア 攻撃力アップ(メイン) ダメージ 倍率
3 0 36.7 0.8738

プライムシューターはたとえ相手のメインギアが防御力アップ3つでも確定3発で倒せるため、攻撃力アップは必要ないことが分かる。

結論

以上より、攻撃力アップギアはガンガン攻めて相手を倒しまくるというより、相手の防御力アップギアの影響を打ち消すための物のようだ。
.52ガロンのように素のダメージが確定数ギリギリの武器の場合は保険で幾つか積んでおいたほうがいいかもしれないが、プライムシューターのように相手が防御力アップギアをメインで3つ積んでいても確定数が変わらないような武器の場合、よほど相手が防御力アップをガン積みしている事を想定するのでなければ積む必要は全くない。