0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【ゴチバトル】ピタリ賞のメニューを求めようとしたが

Last updated at Posted at 2020-11-23

はじめに

ふと思いました。

ゴチバトルって 必ずピタリ賞の可能性があるのだろうか?
つまりメニュー・金額によっては、どう組み合わせてもピタリ賞にならないこともあるのでは?
(もしゴチバトルが公営ギャンブルなら、その辺を明確にすべきですね?)

ということで、ピタリ賞の解を求めるロジックを考えてみたのですが・・・。

メニューの全組み合わせを調べればよい?

仮にメニューが3品(A,B,C)の場合、

・Aのみ
・Bのみ
・Cのみ
・AとB
・AとC
・BとC
・AとBとC

これらの合計金額のうち設定金額と等しいものが、求める解です。
どれも等しくなければ「ピタリ賞の可能性なし」といえます。

・・・でも そう単純ではありませんでした。

たまにデザートで、同じメニューを複数 注文する場合があります。
このパラメータのせいで、組み合わせ数が膨大になってしまいました。

数式にする

設定金額:$S$
メニューn品それぞれの金額:$a_1, a_2 ... a_n$
それぞれの注文数:$x_1, x_2 ... x_n$

このとき以下の式が成り立つ $x_1, x_2 ... x_n$ を求める必要があります。

$S = a_1x_1 + a_2x_2 + ... + a_nx_n$

すみません、ここまでです。

n = 3(メニュー3品)の場合、

注文数 $x_1 ... x_n$ が1以上0以上の整数なので、
($x_1,x_2,x_3$) をすべて書き出そうとすると、

(1,0,0)
(0,1,0)
(0,0,1)
(1,1,0)
(1,0,1)
(0,1,1)
(1,1,1)

(2,0,0)
(0,2,0)
(0,0,2)
(2,2,0)
(2,0,2)
(0,2,2)
(2,2,2)

(2,1,0)
(2,0,1)
(2,1,1)
(1,2,0)
(0,2,1)
(1,2,1)
(1,0,2)
(0,1,2)
(1,1,2)
(2,2,1)
(2,1,2)
(1,2,2)

(3,0,0)
(0,3,0)
(0,0,3)
(3,3,0)
(3,0,3)
(0,3,3)
(3,3,3)

(3,1,0)
(3,0,1)
(3,1,1)
(1,3,0)
(0,3,1)
(1,3,1)
(1,0,3)
(0,1,3)
(1,1,3)
(3,3,1)
(3,1,3)
(1,3,3)

(3,2,0)
(3,0,2)
(3,2,2)
(2,3,0)
(0,3,2)
(2,3,2)
(2,0,3)
(0,2,3)
(2,2,3)
(3,3,2)
(3,2,3)
(2,3,3)

(3,2,1)
(3,1,2)
(2,3,1)
(1,3,2)
(2,1,3)
(1,2,3)

もう無理です :sweat:
3品でこうなのだから、メニューが増えたら お手上げです。

(まあ実際は、同じ肉料理を2皿以上注文することは無いのですが・・・。)

編集後記?

ピタリ賞の解を求めるのは、パズルの問題ともいえます。
そして この問題を考えていて、上司とのやり取りを思い出しました。

そのとき私は、(ピタリ賞とは別の)パズル的な問題を抱えていました。
私は難しい旨 上司に伝えると、

「データを抽出するのと、パズルの解を抽出するのと、何が違うの?」
(そんなに難しいの?)

というものでした。どうも上司は、

「データベースの全社員から20代男性を抽出する」ことと、
「パズルの組み合わせから正解を抽出する」ことは、同じと思っていたようです。

エンジニアの考えを、「非エンジニア」に伝えるのは
なかなか難しいものです。

0
0
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?