問2 (ウ)(エ)に入れる数式は? (但し、既約分数になるようにする)
(出題 ジョー3さん)
解答用参考ファイル:Q100_2011をダウンロード
)**********************************************************************************
尚、解答締め切りは06/11(土)の午後8時の予定です。(状況によっては
変更される可能性があります)締め切りまでに私までメールで解答をお知らせ下さい。
解答発表までは直接数式を書き込むこと・ポイントとなる関数名を
書き込むことはご遠慮ください。
********************************************************************************
すみません。
Aを(ア)、Bを(イ)
Xを(ウ)、Yを(エ)と読み替えて下さい m(__)m
投稿情報: くまぷー | 2011年6 月 6日 (月曜日) 午後 09時00分
・・・で
(ア)はB6、(イ)はD6
(ウ)はF5、(エ)はF6です。
投稿情報: くまぷー | 2011年6 月 6日 (月曜日) 午後 09時03分
おーーーでたなーーーー
で、、、
皆さん一言、,お願い
1=簡単すぎる
2=ちょうど良い
3=考えるかも知れない
4=ちと、悩むかも、
5=むむーーーー、、、、今日は、,無理かも、,,
6=こんなの、、、とけるのーーーー
4,5名のエクセル好きは・・・・・・5,6だったけど、、、、、
投稿情報: ジョー3 | 2011年6 月 6日 (月曜日) 午後 09時06分
7=問題が分からない。
投稿情報: りす | 2011年6 月 6日 (月曜日) 午後 09時24分
>7=問題が分からない。
がーーーん、、、、、、
くまちゃーん、、、、、、
投稿情報: ジョー3 | 2011年6 月 6日 (月曜日) 午後 09時26分
=1/15
の
0.666666666667
は
表示形式
分数で
1/15
ですよね、、、、
で、、、それを、、、
表示形式でなく、、、関数で、,求めるってだけです。
&
では、、、
1/A 1/B を加算して、、、、その値を作る
A、Bは、、、、、????
・・・・・・・・・・・・・
もしかして、ますます、、、分からなくなった?
からくちさーーーん、、、、
じょー3は、、、
日本語も、苦手ですーーーーー
投稿情報: ジョー3 | 2011年6 月 6日 (月曜日) 午後 09時33分
>皆さん一言、,お願い
(ウ)+(エ)=71
(ア)(イ)どちらかは式も要らないのでは
つまり、、、意味不明、、、問題を分かっていない
投稿情報: からくち | 2011年6 月 6日 (月曜日) 午後 09時36分
>(ア)(イ)どちらかは式も要らないのでは
>つまり、、、意味不明、、、問題を分かっていない
あのーーー
説明シートと、
問題シートがあります。
緑の少数以外は、、、、数値が、ありませんです。
(問題シートはね)
問題をつくるって、・・・・・難しいネーーー
投稿情報: ジョー3 | 2011年6 月 6日 (月曜日) 午後 09時40分
>(ア)(イ)どちらかは式も要らないのでは
それはそうだけど(ア)+(イ)の文字数を最小に
するには?と解釈・・・
投稿情報: くまぷー | 2011年6 月 6日 (月曜日) 午後 09時52分
問題ファイルが、、、かえって悪かった?
1)
=1/RANDBETWEEN(1,100)+1/RANDBETWEEN(1,100)
この数式で発生する少数を分数にして下さい(既約分数)
2)
では、、
1)の分数は
1/A+1/Bで作ることが出来ます。
では、
A,Bは、いくつでしょう??
(2,3の組み合わせのうち1つでいいですけど、、、)
このほうが、、分かりやすかったかなーーー
・・・・・・・・・・・・・・・
反省!!・・・・・
投稿情報: ジョー3 | 2011年6 月 6日 (月曜日) 午後 09時53分
で、色で言うと、,,,
緑から
水色
青
黄色
赤
の
数値を、作ってネーーー
って、ことで、
元の数値は、、、、みどりだけでーーーす。
投稿情報: ジョー3 | 2011年6 月 6日 (月曜日) 午後 10時08分
私もよくわからないのですが、B10の数値に該当する、アイウエをつくるんでしょうか?
それから、例えば、ウの式ではア、イを参照しても良いのでしょうか?
投稿情報: y sakuda | 2011年6 月 6日 (月曜日) 午後 10時08分
>私もよくわからないのですが、B10の数値に該当する、アイウエをつくるんでしょうか?
そそ、、、、そのとおりですーーーーー
>それから、例えば、ウの式ではア、イを参照しても良いのでしょうか?
そそ、、、、
そのとおりですーーーーーー
考えようによっては、、、作業セル???・・・・・
・・・・・・・・
ふふふ、、、、、
くまぷーさんは、、、、上手に使うかも、,,,
投稿情報: ジョー3 | 2011年6 月 6日 (月曜日) 午後 10時10分
余計なことですけど、,,,,
嬉しいです。
からくちさんの、、、、真意が、、、しばらく理解不能・・・・・・
わたしの、、、問題も、,,理解不能・・・・・・
変な共通点に、、満足して喜んでいるじょー3なのだ。
投稿情報: ジョー3 | 2011年6 月 6日 (月曜日) 午後 10時13分
もう1つ、、、マイナス値でもいいのでしょうか
投稿情報: からくち | 2011年6 月 6日 (月曜日) 午後 10時20分
>もう1つ、、、マイナス値でもいいのでしょうか
ごめーーん、、、
だめですーーーーーー
=私の意見
・・・・・・・・・・・・・・・・
>=1/RANDBETWEEN(1,100)+1/RANDBETWEEN(1,100)
に・・・・出来るだけ、,,近づけたいにでネーーーーー
投稿情報: ジョー3 | 2011年6 月 6日 (月曜日) 午後 10時24分
あぁ~、分かって来た。
B10=1/B6+1/D6=F5/F6
となる、正の整数のB6,D6,F5,F6を求める式を考えろ!
ですね?
投稿情報: りす | 2011年6 月 6日 (月曜日) 午後 10時26分
>ですね?
です、、です、、、、、
そうですーーーーー
りす さんーーーーーー
なんて、、、理解力が言いの賞・・・・・・
あーーーーー(賞だって)・・・・・
先回も、今回も、さんきゅー・・・・・・・・
で、で、、、りすさん、、、、、
さいたんが、
賞とは限りませんですから、、、、、
最短でなくても、,奥ってね、,,・・・・送ってね。。。。。。
投稿情報: ジョー3 | 2011年6 月 6日 (月曜日) 午後 10時30分
結構難しい^^;
ウエはとりあえずできますが・・・・・
投稿情報: y sakuda | 2011年6 月 6日 (月曜日) 午後 10時36分
とりあえず、(ア)と(イ)は出来たけど、たまにエラーになる><
10回に1回くらいか…?
>最短でなくても、,奥ってね、,,・・・・送ってね。。。。。。
いやぁ~、全然ダメなので、棄権しましたw
投稿情報: りす | 2011年6 月 6日 (月曜日) 午後 10時37分
あぁ~、あの関数を使えば良いのか…w
投稿情報: りす | 2011年6 月 6日 (月曜日) 午後 10時39分
質問の仕方が悪かったようです、、、改めて
質問:ウエが1/15の時、ア=6・イ=-10
1/6-1/10=1/15で成立と思うのですが・・・
つまりマイナス10と言う値を出してはダメなのでしょうか
投稿情報: からくち | 2011年6 月 6日 (月曜日) 午後 10時42分
>ウエはとりあえずできますが・・・・・
はい、取り敢えず61
投稿情報: からくち | 2011年6 月 6日 (月曜日) 午後 10時43分
>結構難しい^^;
>ウエはとりあえずできますが・・・・・
うちの、社員は皆さんを、、尊敬してます。
むむーーーーー・・・・・状態の、、、、
彼らの前で、、、、
分殺で(秒?)
>ウエはとりあえずできますが・・・・・
は・・・・・酷だと思うなーーーー
>とりあえず、(ア)と(イ)は出来たけど、たまにエラーになる><
>10回に1回くらいか…?
へーーーー・・・・(ちょっと余裕)
>あぁ~、あの関数を使えば良いのか…w
ど、、、どき、、、、、、
投稿情報: ジョー3 | 2011年6 月 6日 (月曜日) 午後 10時45分
>つまりマイナス10と言う値を出してはダメなのでしょうか
はい、、、マイナスは、、、禁止です。。。
ご免なさい・・・・・・
>=1/RANDBETWEEN(1,100)+1/RANDBETWEEN(1,100)
ですから、、、
言えることは、,,
1/1から1/100
の、間で、,マイナスはあり得ない・・・・・・
で、
まあ、、
>=1/RANDBETWEEN(1,100)+1/RANDBETWEEN(1,100)
の際の、,,
>=1/RANDBETWEEN(1,X)+1/RANDBETWEEN(1,Y)
を、、、
当てるってことですから、,,
マイナスはあり得ない。。。。。
(皆さん、,ご免なさい)
私の中では、そういう結論にしたいです。
投稿情報: ジョー3 | 2011年6 月 6日 (月曜日) 午後 10時51分
できました。(長いですが)
字数は書いていいのかな?
投稿情報: y sakuda | 2011年6 月 6日 (月曜日) 午後 10時52分
とりあえず、(イ),(ウ),(エ)は出来たっぽい。
(ア)がイマイチ
9割くらいはOK?
投稿情報: りす | 2011年6 月 6日 (月曜日) 午後 10時52分
>できました。(長いですが)
>字数は書いていいのかな?
早すぎですーーーー
まあ、、、いいけど、、、、、
ていうか、、、
聞きたいです。
(200以下でありませんように・・・・・の、、、ジョー3の心)
>9割くらいはOK?
駄目デー-す、、、、
けど、、、参考に、,,
お聞きしたい、,文字数です。
投稿情報: ジョー3 | 2011年6 月 6日 (月曜日) 午後 10時58分
それにしても、、、
想定外だなーーーー
ささっと、、、出来るんですねーーーー
問題の真意を理解する時間>問題を解く時間
みなさん、、、凄すぎですーーーー
投稿情報: ジョー3 | 2011年6 月 6日 (月曜日) 午後 11時08分
121です。
脳内では合ってるんだけどな…
投稿情報: りす | 2011年6 月 6日 (月曜日) 午後 11時25分
チェックモジュール作ってぶん回してみると数十回に一回誤差が出てるようですが・・・(多分近似解が数個ある)最短は4式合計で90です。
ただ、精度あげるために弄って長くなる可能性が大ですが^^
(今日は一応やって見ただけで検証はいい加減です)
投稿情報: y sakuda | 2011年6 月 6日 (月曜日) 午後 11時30分
理論上はあってるはずがおかしくなるのを補正して94
今日はこれで終わりというより、もう終わりかも^^;
投稿情報: y sakuda | 2011年6 月 7日 (火曜日) 午前 12時26分
うぎゃ~、完全に出遅れている~
第100問だけあって、盛り上がってますね~
とりあえずできたのは、4式合計で 154
投稿情報: ni | 2011年6 月 7日 (火曜日) 午前 02時07分
92でぶん回してテストしてたら、アイについては全く問題ないのですが、ウエが既約にならないケースがあることが分かった(考えて見れば当たり前の話)
最初に考えたウエの手法なら大丈夫なんですが、ダサいし長くなるし・・・・・
さーどうしよう^^;
投稿情報: y sakuda | 2011年6 月 7日 (火曜日) 午前 10時10分
ウエが既約分数になるように修正しました。
長くなって108になっちゃいました^^
投稿情報: y sakuda | 2011年6 月 7日 (火曜日) 午前 11時06分
>うぎゃ~、完全に出遅れている~
>とりあえずできたのは、4式合計で 154
私もこだわり案は、、、そのくらい・・・・ ほっ、、、、
>121です。
>脳内では合ってるんだけどな…
こだわりやめて、むりむり・・・短縮で、、、同じぐらい、、、
>ウエが既約分数になるように修正しました。
>長くなって108になっちゃいました^^
うひゃーーーーー・・・・・・もう負けてますーーーー
ギブアップかも、,,,,
投稿情報: ジョー3 | 2011年6 月 7日 (火曜日) 午後 12時11分
ま、、
今回は、,,
文字数より、,,
どんな風にしたかに、・・・より大きな関心・・・・
・・・・・・・・・・・・・
投稿情報: ジョー3 | 2011年6 月 7日 (火曜日) 午後 12時12分
>どんな風にしたかに、・・・より大きな関心・・・・
それはありますね。
因みに私の108は結局誤差補正で8文字使ってます。
誤差補正抜いて理論式では100アンダーにしたいのですが、上手くゆくかな?
投稿情報: y sakuda | 2011年6 月 7日 (火曜日) 午後 12時58分
さてさて、、、
短い別案が出来たでスーーーー
と、、思ったら、、、80台だがね、、、、、・・・・・
だが、、、たまにねーーー
おいおい、、、モット約分できるだろーーーー・・・・
が、、、でてきた。
短縮しすぎは、、、ときに、、命取りだねーーーー・・・・・
・・・・・・・・・・・・・・・
と、おもった。
投稿情報: jyo3 | 2011年6 月 7日 (火曜日) 午後 07時40分
ジョー3とこの方たち顔だしてこないのかな?
人数多い方が楽しいのに。
それに応募してもらった方がもっと楽しめると思うんだけど^^
実用的なバージョンではいまだに100切れません。
どうも悪い癖で、一つできちゃうと違う手法がなかなか出てこないです。
投稿情報: y sakuda | 2011年6 月 7日 (火曜日) 午後 07時42分
て、わけで、、、
122から、、、
進歩してません。
120になりそうではあるが、、、こわいから、、やめとくか!!
投稿情報: jyo3 | 2011年6 月 7日 (火曜日) 午後 07時42分
>おいおい、、、モット約分できるだろーーーー・・・・
私と同じパターンだ^^
私の場合はその段階では90台でした。
投稿情報: y sakuda | 2011年6 月 7日 (火曜日) 午後 07時44分
>ジョー3とこの方たち顔だしてこないのかな?
>人数多い方が楽しいのに。
あ、、、すんません、、、
みなさん、、配列数式は、、、苦手のようでして、、、
(俺が、にがてだから、、、しょうがないかーーー)
投稿情報: jyo3 | 2011年6 月 7日 (火曜日) 午後 07時49分
>みなさん、、配列数式は、、、苦手のようでして、、、
別に配列数式じゃなくても^^
無理かな?
投稿情報: y sakuda | 2011年6 月 7日 (火曜日) 午後 08時02分
で、、、、
この問題は、、、
実は、、書くところに書いたが、、、、・・・・・・
minmaxさんの、、日記を見て、
即座に思いついた問題です。
エクセルの、表示形式で、、分数表示???へーーー、、、、
エクセルの、、、プログラマーは、、、
どうしてるのかなーーー・・・・・・
・・・・・・・・・・・・・
ってね、
datedif問題で、苦しんでおられるようですけど、、、
・・・・・・・・・・・・・・・・・・・
まあ、、それは、おいといて、、、・・・・・・・・・
・・・・・・・・・・・・・・・・・・・
どうしているか、、、気になったのです・・・・・・
・・・・・・・・・・・・・・・・・・・・・
分数・・・・・・・・
・・・・・・・・・・・・・
・・・・・・・・・・・・・・がね、、、、、
投稿情報: jyo3 | 2011年6 月 7日 (火曜日) 午後 08時03分
>無理かな?
おーーーそれが出来たら、、、・・・・・・
金か銀を推奨したいなーーー・・・・・
出来るのかなーーーー
投稿情報: jyo3 | 2011年6 月 7日 (火曜日) 午後 08時05分
108文字です・・・
久々に
答えだしたら
除夜の鐘・・・
投稿情報: くまぷー | 2011年6 月 7日 (火曜日) 午後 08時21分
108????
suge----
ofutari,,,
投稿情報: ジョー3 | 2011年6 月 7日 (火曜日) 午後 08時25分
くまぷーさん108ですかーー
私と同じような事やってるみたいですね^^
誤差ケアしない理論形なら100切れると思いますがどうでしょうか?
私は非実用的かつ誤差をケアしないなら、95くらいのはずです。
(今提出するとしたらってバージョンは104です)
投稿情報: y sakuda | 2011年6 月 7日 (火曜日) 午後 09時27分
>私と同じような事やってるみたいですね^^
いや、違うような・・・
実は私は初めに誤差考慮バージョンを作っりました。
もうちょっと長いヤツです。
・・・試しに誤差トラップを外してみたら
大丈夫そうなので・・・というのが108文字です。
安全装置はついていません (^^ゞ
投稿情報: くまぷー | 2011年6 月 7日 (火曜日) 午後 09時39分
安全装置なしですか?
私のは数十回に一度誤差の影響が出ました。
投稿情報: y sakuda | 2011年6 月 7日 (火曜日) 午後 09時52分
もう100切ってしまっているんですね。
式の見直しと、既約分数(これ見落としていた)にすると、
(ア)だけで99
4式合計 144
でも、時々変・・・
この関数がタコなのか、使い方がタコなのか^^;
投稿情報: ni | 2011年6 月 8日 (水曜日) 午前 01時40分
>もう100切ってしまっているんですね。
エラーをケアし、まともに反応するって意味ではまだ100台です
投稿情報: y sakuda | 2011年6 月 8日 (水曜日) 午前 06時54分
ジョー3さん、、、この問題は困ったもんだ
何故って、、、式が沢山あり過ぎて・・・
書けども、書けども、、、次から次に・・・
すると当然色々な値を得てしまう、、、計算上は合格ですが・・・
(ウ)(エ)はまだ約分出来る数では、、、☓でしょうか?
(ア)(イ)は1~100の範囲以外の数値は、、、☓でしょうか?
文字列(数字)は、、、☓でしょうか?、、、(数値限定?)
>おーーーそれが出来たら
>金か銀を推奨したいなー
本当ですか、、、
ただ、、、配列の定義は?、、、
S-C-Eで確定、INDEX・SUMPRUDUCT・FREQUENCY・MMULTを使う
上記以外でOKなら、、、10文字差くらいで可能
投稿情報: からくち | 2011年6 月 8日 (水曜日) 午前 06時55分
>(ウ)(エ)はまだ約分出来る数では、、、☓でしょうか?
△です。失格ではありませんが・・・
同様の考え、文字数では、、もう約分出来ない。が、○
しかし、驚異の手法、文字数では、その分カバーするかも、、
>(ア)(イ)は1~100の範囲以外の数値は、、、☓でしょうか?
× です。 式が、1~100ですから・・・・それを探る意味の問題だから
(実際は1~100の間に回答が、ひとつとは限らないけど)
>文字列(数字)は、、、☓でしょうか?、、、(数値限定?)
これは、立派な○です。
>何故って、、、式が沢山あり過ぎて・・・
自作の私は、、3,4しか、思いつかない。
で、どなたも、されないようなものは・・・・・むむーーーー、、、無、、、
もう、、固定観念・・・
>上記以外でOKなら、、、10文字差くらいで可能
そりゃまたすげーーーー
投稿情報: jyo3 | 2011年6 月 8日 (水曜日) 午前 07時42分
>この関数がタコなのか、使い方がタコなのか^^;
わたしも、タコな、、、ところを見つけました。
で・・・×2
だから、、最初の案に引きこもってしまった。
で、、、130弱、、、、
投稿情報: jyo3 | 2011年6 月 8日 (水曜日) 午前 07時47分
>わたしも、タコな、、、ところを見つけました。
多分私と同じことを仰ってるんだと・・・・
2^-15つまり末桁の桁落ちに敏感に反応してますね。でその補正で+5
>何故って、、、式が沢山あり過ぎて・・・
私はぜんぜん思いつかない。基本的には一種類のみですね。
投稿情報: y sakuda | 2011年6 月 8日 (水曜日) 午前 08時56分
訂正です
2^-15 ⇒ 10^-15
投稿情報: y sakuda | 2011年6 月 8日 (水曜日) 午前 08時58分
>多分私と同じことを仰ってるんだと・・・・
私の場合違います。
二つの数値があって、
例えば、
1)式の結果の・・・・120と3311・・・ある関数で処理したら、
2)手入力の・・・・・120と3311・・・同様の式で調べた。
結果が違ったんです。
・・・・この頃、私のノートがメモリーエラーで落ちてしまう・・・そのせいかも。
投稿情報: ジョー3 | 2011年6 月 8日 (水曜日) 午前 09時37分
>1)式の結果の・・・・120と3311・・・ある関数で処理したら、
>2)手入力の・・・・・120と3311・・・同様の式で調べた。
>結果が違ったんです。
正にその話をしてるつもりです。
投稿情報: y sakuda | 2011年6 月 8日 (水曜日) 午前 09時50分
>正にその話をしてるつもりです。
あらら、、、変な問題作っちゃたかなーーー
投稿情報: ジョー3 | 2011年6 月 8日 (水曜日) 午前 10時08分
>S-C-Eで確定、INDEX・SUMPRUDUCT・FREQUENCY・MMULTを使う
>上記以外でOKなら、、、10文字差くらいで可能
8文字差で一つできたみたいです。(ちゃんとはテストしてませんが)
↑の条件は満たしてますが、実質配列使ってるし、普通にやった方がよっぽど簡単かと(使用関数はLMR(Rは二個))w
まあ、単にEnterで大丈夫と言うだけですね^^;
投稿情報: y sakuda | 2011年6 月 8日 (水曜日) 午後 12時48分
>8文字差で一つできたみたいです。(ちゃんとはテストしてませんが)
>↑の条件は満たしてますが
ちらっ、、、
sakudaさん、、燃えてますネーーー
投稿情報: ジョー3 | 2011年6 月 8日 (水曜日) 午後 02時06分
>sakudaさん、、燃えてますネーーー
つーか、初日以降さしたるアイデアも出ないので、気分転換に・・・
投稿情報: y sakuda | 2011年6 月 8日 (水曜日) 午後 04時17分
>>何故って、、、式が沢山あり過ぎて・・・
>私はぜんぜん思いつかない。基本的には一種類のみですね。 ×2
投稿情報: くまぷー | 2011年6 月 8日 (水曜日) 午後 07時18分
>私はぜんぜん思いつかない。基本的には一種類のみですね。 ×2
あはは、、、
100近辺が、、思いつけば、、、
もう、、、、、切羽詰らんから、、、、、
・・・・・・・・・・・・・・・・・・いいのだ、、、、
それに引き換え、、、
出題者、、の、、、思い込みモードの、、、
ジョー3は、、、
120台で、、、ストップしてるのだ。。
・・・・・・・・・・・・あとは、、どなたも同じ式を使わないで、、、
ちょっと、、目立ちますようにーーーーー、、、、モードなのだ。。
投稿情報: jyo3 | 2011年6 月 8日 (水曜日) 午後 08時00分
もうほぼ二日何も新機軸思いつかない(配列じゃないやつも別に目新しくはないです)ので、暇になっちゃったんですが、チェック用のコード整理してアップしましょうか?
投稿情報: y sakuda | 2011年6 月 8日 (水曜日) 午後 08時07分
>チェック用のコード整理してアップしましょうか?
あはは、、いいかも、、、歓迎!!
てのは、、、
1,1
100,100
その他、10個ぐらい
お試しデータ、、を、、、作ろうと、思っていた、
で、、でで、、、歓迎なのだ、、、
投稿情報: jyo3 | 2011年6 月 8日 (水曜日) 午後 08時12分
じゃ、後でアップします
投稿情報: y sakuda | 2011年6 月 8日 (水曜日) 午後 10時35分
Q100 チェック用のコードです
ここの常連さんが使うので細かい説明は省略します
1.標準モジュールを一つ挿入して、↓のコードを丸ごと貼りつけてください
2.チェックしたいシートを表示してマクロを実行してください。
1~2分くらい砂時計表示で固まることになりますが、終了時にチェック結果をメッセージボックスで表示します
3.チェックするために、B10の式を書き換え、またZ1:Z3をワークエリアに使用しますが、コードの終了時に復元します。
4.スピードを上げるために画面更新を殺してありますが、コメントを付けてある
Application.ScreenUpdating = False
の行を削除するかコメントにすれば、画面の動きでチェック状況がわかります。
5.フルチェック
頭の方の
wType = 1
を
wType = 0
に変えれば1万例すべてをチェックします。ただし、これは20~30分CPUを独占することになります
また、簡易モードの時、wStep = 17
を適当に変えれば、チェックする分量が変わります。
今は一方の整数を 1、18、35、52・・・・と17置きにするようにしてあります
書き流し&碌にテストしてませんので、なにかあったらご一報くださいw
Sub Q100check()
Const wEps = 10 ^ -15
Dim wFormula As String, wZ1, wZ2, wZ3, I As Long, J As Long
Dim wFlg As Boolean, wErr As Long, wMsg As String
Dim wB6, wD6, wF5, wF6, wType As Long, wStep As Long
'簡易モード/フルチェック
wType = 1 'フルモードの時は0にしてください
'
If wType = 0 Then
wStep = 1
Else
wStep = 17
End If
wFlg = False
With ActiveSheet
wFormula = .Range("B10").FormulaLocal
wZ1 = .Range("Z1")
wZ2 = .Range("Z2")
wZ3 = .Range("Z3")
.Range("Z1") = 1
.Range("Z2") = 1
.Range("B10").FormulaLocal = "=1/Z1+1/Z2"
.Range("Z3").FormulaLocal = "=gcd(F5,F6)"
'画面が変わるのが見たければ、↓の行をコメントアウトしてください
Application.ScreenUpdating = False
'
On Error Resume Next
For I = 1 To 100 Step wStep
For J = 1 To 100
.Range("Z1") = I
.Range("Z2") = J
wB6 = .Range("b6")
wD6 = .Range("D6")
wF5 = .Range("F5")
wF6 = .Range("F6")
If wB6 > 0 And wB6 < 101 And wD6> 0 And wD6 < 101 Then
If Abs(1 / wB6 + 1 / wD6 - .Range("B10")) < wEps Then
If Abs(wF5 / wF6 - .Range("B10")) < wEps Then
If .Range("Z3") = 1 Then
Else
wFlg = True
wErr = 3
End If
Else
wFlg = True
wErr = 2
End If
Else
wFlg = True
wErr = 1
End If
Else
wFlg = True
wErr = 4
End If
If wFlg Then Exit For
Next
If wFlg Then Exit For
Next
On Error GoTo 0
Application.ScreenUpdating = True
If wFlg Then
Select Case wErr
Case 1: wMsg = "B6,D6が正しくありません"
Case 2: wMsg = "F5,F6が正しくありません"
Case 3: wMsg = "F5,F6が既約分数になってません"
Case 4: wMsg = "B6,D6が1~100以外になっています"
End Select
MsgBox "エラーです:" & wMsg
Else
MsgBox "おめでとうございます!"
End If
.Range("b10").FormulaLocal = wFormula
.Range("Z1") = wZ1
.Range("Z2") = wZ2
.Range("Z3") = wZ3
End With
End Sub
投稿情報: y sakuda | 2011年6 月 8日 (水曜日) 午後 11時17分
そうだ、↑のコードでチェックすると、おかしいことは分かりますが、どういう状況でおかしくなったかまでは出しません。
それに気付かなかったのは、私が次のように問題シートを改造してやってるためです。
1.B12、D12に =RANDBETWEEN(1,100)
2.B10を =1/B12+1/D12
として、前提と答えが常に見えるようにしています。
皆さんも同じような事やってるとおもいますが・・・・
投稿情報: y sakuda | 2011年6 月 8日 (水曜日) 午後 11時25分
たぶんこれでOK
チェック用のタコ関数が、425が2で割り切れるとか、言っていたので
叱ってやったらまともに判定してくれるようになりました。
(ア)も改良して、4式合計 102文字
ysakudaさんのチェックプログラム(簡易モード)をクリアするには5文字増えて 107文字
表示上は変わらないんですけどね
投稿情報: ni | 2011年6 月 9日 (木曜日) 午前 01時30分
おー、ちょこっと修正で 100文字
チェックプログラム対応で 105文字です。
投稿情報: ni | 2011年6 月 9日 (木曜日) 午前 01時39分
ジョー3さん、、、この問題、面白過ぎます
最終的にどれを送ろうか、まだ決めていませんが
お遊び式大好き人のわたしは、、、70%位しか正解しない
こんな式をわたしの式とするかも、、、正解率100%を捨てて
投稿情報: からくち | 2011年6 月 9日 (木曜日) 午後 12時07分
>70%位しか正解しない
残り30%は、、、エラー
投稿情報: からくち | 2011年6 月 9日 (木曜日) 午後 12時28分
やっぱ、エラーの発生する組み合わせが分からないってのこまるので、
最後の方のエラー表示の一行を↓に変えてください。
(今晩全部再掲します)
MsgBox "エラーです:" & I & " - " & J & " : " & wMsg
投稿情報: y sakuda | 2011年6 月 9日 (木曜日) 午後 12時32分
>ジョー3さん、、、この問題、面白過ぎます
それは、それは、、、、嬉しいです。
>最終的にどれを送ろうか、まだ決めていませんが
3案ぐらいまで、応募して良いことにしましょう。。。
ん、、、、いままでも、、、そんな感じだったかな?
投稿情報: ジョー3 | 2011年6 月 9日 (木曜日) 午後 01時59分
う~~ん、、、難しい、、、如何しよう
何がって、、、直すと面白く無くなってしまう
でも、、、エラー30%は余りにも多過ぎる
因みに、、、配列数式とは全く無関係、、、66
でも、、、不正解の式では・・・難しい。。。
投稿情報: からくち | 2011年6 月 9日 (木曜日) 午後 06時43分
非配列数式版なんですが、チェックかけてみたら、100を超す答えが出てきたりしたので、エラーをケアしたら145と大幅に長くなっちゃいました。
チェックプログラムの修正版をアップします(今朝程投稿した一行を変えただけです)
Sub Q100check()
Const wEps = 10 ^ -15
Dim wFormula As String, wZ1, wZ2, wZ3, I As Long, J As Long
Dim wFlg As Boolean, wErr As Long, wMsg As String
Dim wB6, wD6, wF5, wF6, wType As Long, wStep As Long
'簡易モード/フルチェック
wType = 1 'フルモードの時は0にしてください
'
If wType = 0 Then
wStep = 1
Else
wStep = 17
End If
wFlg = False
With ActiveSheet
wFormula = .Range("B10").FormulaLocal
wZ1 = .Range("Z1")
wZ2 = .Range("Z2")
wZ3 = .Range("Z3")
.Range("Z1") = 1
.Range("Z2") = 1
.Range("B10").FormulaLocal = "=1/Z1+1/Z2"
.Range("Z3").FormulaLocal = "=gcd(F5,F6)"
'画面が変わるのが見たければ、↓の行をコメントアウトしてください
Application.ScreenUpdating = False
'
On Error Resume Next
For I = 1 To 100 Step wStep
For J = 1 To 100
.Range("Z1") = I
.Range("Z2") = J
wB6 = .Range("b6")
wD6 = .Range("D6")
wF5 = .Range("F5")
wF6 = .Range("F6")
If wB6 > 0 And wB6 < 101 And wD6 > 0 And wD6 < 101 Then
If Abs(1 / wB6 + 1 / wD6 - .Range("B10")) < wEps Then
If Abs(wF5 / wF6 - .Range("B10")) < wEps Then
If .Range("Z3") = 1 Then
Else
wFlg = True
wErr = 3
End If
Else
wFlg = True
wErr = 2
End If
Else
wFlg = True
wErr = 1
End If
Else
wFlg = True
wErr = 4
End If
If wFlg Then Exit For
Next
If wFlg Then Exit For
Next
On Error GoTo 0
Application.ScreenUpdating = True
If wFlg Then
Select Case wErr
Case 1: wMsg = "B6,D6が正しくありません"
Case 2: wMsg = "F5,F6が正しくありません"
Case 3: wMsg = "F5,F6が既約分数になってません"
Case 4: wMsg = "B6,D6が1~100以外になっています"
End Select
MsgBox "エラーです:" & I & " - " & J & " : " & wMsg
Else
MsgBox "おめでとうございます!"
End If
.Range("b10").FormulaLocal = wFormula
.Range("Z1") = wZ1
.Range("Z2") = wZ2
.Range("Z3") = wZ3
End With
End Sub
投稿情報: y sakuda | 2011年6 月 9日 (木曜日) 午後 08時22分
安全装置なしの108が
sakudaさんのチェックに合格しました。
\(^-^)/バンザーイ、/( )\モヒトツ、\(^o^)/バンザーイ
投稿情報: くまぷー | 2011年6 月 9日 (木曜日) 午後 08時42分
sakudaさんの御蔭で2文字減の
106になりました。
投稿情報: くまぷー | 2011年6 月 9日 (木曜日) 午後 08時55分
>106になりました。
すごい、、いいぞーーー
あ、、、
わたしは、、、ぜんぜん・・・・
>sakudaさんのチェックに合格しました。
うむーーーー・・・・
合格はしたが、,,
ちょっと変えると、,,
29
30
が、、、、(だったかなーーー)
約分できると、,怒られた。
投稿情報: ジョー3 | 2011年6 月 9日 (木曜日) 午後 09時43分
>約分できると、,怒られた。
これが、私とniさんの言ってるエラーをケアすると+5になるってやつですw
要するに計算結果が、30-10^-15 位になっていて、通常Excelさんは30と見てくれるのですが、あの関数は30未満と考えちゃう見たいです。
配列じゃないヤツをもう一種考えました。頭のなかではかなり短縮になるはずだったんですが、156になっちゃった。
やはりこれは素直に配列数式でやった方が分かり易いし短くなるようです^^;
投稿情報: y sakuda | 2011年6 月 9日 (木曜日) 午後 09時55分
>あの関数は30未満と考えちゃう見たいです。
私は、その関数を、使ってない、,,
投稿情報: ジョー3 | 2011年6 月 9日 (木曜日) 午後 10時12分
すみません。
106は間違いでした。
やっぱり、108です m(__)m
投稿情報: くまぷー | 2011年6 月 9日 (木曜日) 午後 10時18分
105文字がysakudaさんのチェックプログラム フルバージョンをクリアしました。
ついでに、103文字も簡易チェッククリアしました。
さらに、101文字も簡易チェッククリアしました。
投稿情報: ni | 2011年6 月10日 (金曜日) 午前 01時54分
niさん、突っ走っていますね~
私はもう削るところがない・・・
投稿情報: くまぷー | 2011年6 月10日 (金曜日) 午前 05時54分
さて、、、
その後、、、、
わすれてた、、、、、・・・・・・・・
投稿情報: jyo3 | 2011年6 月10日 (金曜日) 午後 09時09分
101文字、フルチェック クリアしました。
チェックを通らないバージョン(答えは正しいと思う)は一応100切った
投稿情報: ni | 2011年6 月10日 (金曜日) 午後 10時52分
>101文字、フルチェック クリアしました。
おぉっっっっっっっっっっx!!
投稿情報: くまぷー | 2011年6 月10日 (金曜日) 午後 11時00分
もう限界と思うので、解答をメールしました~
投稿情報: ni | 2011年6 月10日 (金曜日) 午後 11時18分
おはようございます。
からくちさんとniさんから解答例を頂きました。
現在2名。
投稿情報: くまぷー | 2011年6 月11日 (土曜日) 午前 06時11分
私も104で終わりましたので送ります。
投稿情報: y sakuda | 2011年6 月11日 (土曜日) 午前 09時44分
出かけてまして、・・・帰って、,,まとめたら、,
122は、出題者案
99は、時々爆発
なので、補正で、
104
あと、夕方、少し、やってみるかも、,,
投稿情報: ジョー3 | 2011年6 月11日 (土曜日) 午前 11時42分
さて、
104は、、、sakudaさんのと、同じかなーーー
ちょっと変更したら、
101になった。
niさんと、、同じかなーーー
投稿情報: ジョー3 | 2011年6 月11日 (土曜日) 午後 04時12分
99になった。
でも、、、
sakudaさんのプログラムに叱られた。
48/47
既約でないです。・・・・と、言われた。
投稿情報: ジョー3 | 2011年6 月11日 (土曜日) 午後 05時28分
てわけで、
出題者ジョー3 122
回答者ジョー3 99
で、
送ります。
投稿情報: ジョー3 | 2011年6 月11日 (土曜日) 午後 05時33分
>48/47
>既約でないです。・・・・と、言われた。
ん?!
判定にあの関数使ってるから47/47と見なされちゃった可能性ありますね。
投稿情報: y sakuda | 2011年6 月11日 (土曜日) 午後 05時34分
やってみましたが、糸口が見つかりませんね。。
投稿情報: min | 2011年6 月11日 (土曜日) 午後 05時55分
>判定にあの関数使ってるから47/47と見なされちゃった可能性ありますね。
なるほどーーー
では、、、正解かも、、、
ん、、、、、、でも、、でも、、、
次か、、、つぎの次あたりに、、、不正解がでるかも、、
投稿情報: jyo3 | 2011年6 月11日 (土曜日) 午後 06時11分