« 関数で解けますか? | メイン | minmaxさんのDec2Bin »

2009年2 月 1日 (日曜日)

コメント

ジョー3

ヤハリ、反復計算・・・・
へーーー出来るんですねーーー
上手なモンです。

で、ついでに、30枚の領収証でも
出来るようにして欲しいなーー

それが出来たら、RAND解法からは
手を引きたいぐらいですーー

minmax

さすがですね。
>ヤハリ、反復計算・・・・×2
反復計算をやろうと思ったのですが、時間と技術が足りませんでした。

DEC2BINはヒントをもらっていたので分かったのですが、511までしかやれないので、代わりに
TEXT(SUM(INT(MOD(ROW(A1),2^ROW($1:$10))/2^(ROW($1:$10)-1))*10^(ROW($1:$10)-1)),"0000000000")
(配列数式が前提です)
で1023まで出来るようにしてROW(A1)の部分を反復計算に置き換えてファイルサイズ縮小しようとしたのですが出来ませんでした。
結局255KBどまりでした。

y sakuda

くまプーさんのシート、チラッと見ましたが良く分からんw
で、さっき申し上げた385通りと言う話題のみ参加^^;
7777を超えるには、上の方から足し行っても、最低6個必要
10個全部使う必要はないので、最高9個の和となります。

6個の組み合わせ10C6 で210通り
7個の組み合わせ10C7 で120通り
8個の組み合わせ10C8 で45通り
9個の組み合わせ10C9 で10通り
合計385の組み合わせを試すだけで十分と言うことです。
実際には9個の組み合わせの最小が下から9個足した物でも9000円を越えますから無視しても良いはずです。

y sakuda

くまぷーさんの仕組みはなんとなく分かりました。
が・・・・
なんで、最初から1922円は使うことに決めちゃってるのかな?

くまぷー

>30枚の領収証でも
出来るようにして欲しいなーー

やることは同じだから
できないことはないと思うけど
エクセルの1回の反復計算回数の上限は
約32000回だからやる気がしない・・・(^^ゞ

>できないことはないと思うけど
>だからやる気がしない・・・(^^ゞ
そ、、、そこをなんとか、、、お師匠様。!!

やる気出してちょうだい!!

くまぷー

>=TEXT(SUM(INT(MOD(ROW(A1),2^ROW($1:$10))/2^(ROW($1:$10)-1))*10^(ROW($1:$10)-1)),"0000000000")

いや~、よくこんな式を考えましたね~
流石です。

>反復計算に置き換えて
ここまで出来ていれば出来たも同じですよ!!

くまぷー

>6個の組み合わせ10C6 で210通り
>7個の組み合わせ10C7 で120通り
>8個の組み合わせ10C8 で45通り
>9個の組み合わせ10C9 で10通り

なるほど、そういうことですか~

>なんで、最初から1922円は使うことに決めちゃってるのかな?

Dec2Binの十進数の上限が511だから
1~9枚目の領収書の使用・不使用は
Dec2Binで賄えます。
しかし、10枚目はダメなのでそこだけ
使用・不使用を別に検査しています。

・・・で初期状態で10枚目は赤くなって
いますが、Startするときっちり、10枚目も
検査します。
 数字を使わない領収書(例えば961円)と
交換するとちゃんと検査しているのが
わかると思います。

くまぷー

>やる気出してちょうだい!!

いやいや・・・(^^ゞ

minmax

素朴な疑問、
サンプルでは2枚目のレシートは\1,766なのに
くまぷーさんの解答ファイルでは\1,776になっている?
単純なミスかな?
答えが合わなかったので気になっただけです。

くまぷー

>単純なミスかな?

すみません、入力ミスです m(__)m

minmax

あともう一つ
10番目のレシートが7777円だったらそのレシート1枚だけでOKですよね?

くまぷー

>10番目のレシートが7777円だったらそのレシート1枚だけでOKですよね?


あっ、バグが見つかっちゃいましたね (^^ゞ

A2の式が・・・
=IF(A1,IF(A2<511,A2+1,A2),0)
・・・なので、A2の初期値が1になってしまい
000000000の場合、つまり1枚目から9枚目までの
領収書を全て使わない場合が検査から
漏れていました。

スミマセンがA2の式を
=IF(A1,IF(A2<511,A2+1,A2),-1)
に変えて下さい m(__)m

くまぷー

あ、でさらに反復計算回数を512以上に
設定し直して下さい。m(__)m

くまぷー

エクセルの改訂版をアップしました。

コメントの確認

コメントのプレビュー

プレビュー中です。コメントはまだ投稿されていません。

処理中...
コメントを投稿できませんでした。エラー:
コメントを投稿しました。 さらにコメントを投稿する

入力された文字と数字は画像と一致していません。再度入力してください。

最後に、下の画像の中に見える文字と数字を入力してください。これはプログラムを使ってコメントを自動的に投稿するのを防ぐために行われています。

画像を読み取れない場合は 別の画像を表示してください。

処理中...

コメントを投稿

アカウント情報

(名前は必須です。メールアドレスは公開されません。)

2024年8 月

        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

TOP メニュー