0〜9の番号がついたトマトが10個,店にならんでいる。
0〜9の番の重さ(グラム)は次のとおりである。
$$[34,44,33,45,55,23,67,52,44,28]$$
いまトマト80グラムが買いたいという注文がきた。
さて、何番と何番のトマトを売ったらよいか。
a = [34,44,33,45,55,23,67,52,44,28]
for(i=0; i<10; i++)
for(j=1; j<10; j++)
if a[i] + a[j] == 80
return [i,j]
return 'no pair'
// i -> a[i]という正引き
a = [34,44,33,45,55,23,67,52,44,28]
b = {} //連想配列
for(i=0; i<10; i++)
// 連想配列に入っているかどうかの'in'が使えるとして
if 80 - a[i] in b
return [ i, b[80 - a[i]] ]
// 34->0,44->1, .... という逆引きできる連想配列をつくる
b[a[i]] = i
return 'no pair'