�������裸�������ʬ�β�����

マツダ
遅れて参戦orz
2,5,10の倍数で場合分け以外にいい方法があるんだろうか・・・。
   12月13日(木) 0:19:51     40066
ようせん
ア+イの値によって場合分け。ア+イ→ウ+エと表すと、
1,3,7,9,11,13,17,19→10の倍数
2,4,6,8,12,14,16,18→5の倍数
5,15→偶数
10,20→何でも良い
以上を足すと、40*10+40*20+10*50+10*100=2700通りです!
地球   12月13日(木) 0:22:47     40067
abcba@baLLjugglermoka
#40067

自分も同じ解法です
   12月13日(木) 0:32:10     40068
みかん
X+Yが
(い)2の倍数だけど5の倍数ではない・・・40通り
(ろ)5の倍数だけど2の倍数ではない・・・10通り
(は)10の倍数である・・・10通り
(に)いずれにも該当しない・・・40通り

これを踏まえれば、
(ア+イ)がどれに該当すると(ウ+エ)で何を選べるのが決まってくる。
   12月13日(木) 1:54:32     40069
あめい
10の倍数になるのは��(10の倍数)×(何でも良い)��(5の倍数)×(偶数)の2パターン
�,錬隠亜�(何でも良い)→9通り×100通り=900通り、20×(何でも良い)→1通り×100通り=100通りで、両方兼ねているのが10×10,10×20,20×10,20×20の100通りあるので1900通り
�^奮阿劉△錬機澡�数→4通り×50通り×2=400通り、15×偶数→6通り×50通り×2=600通りで1000通り
ただし、5×10,5×20,15×10,15×20の200通りは�,亡泙泙譴襪里如�
1900通り+1000通り−200通り=2700通り
   12月13日(木) 4:12:30     40070
数樂
できた。何とかよかったです。苦手ですから…
○×10、10×○、○×20、20×○の場合で、1900通り
5×○、○×5、15×○、○×15の場合で上の場合のだぶりを除いて、800通り
1900+800=2700通り
   12月13日(木) 4:57:52   HomePage:数樂  40071
kawa
FOR a=1 TO 10
FOR b=1 TO 10
FOR c=1 TO 10
FOR d=1 TO 10
LET p=(a+b)*(c+d)
IF MOD(p,10)=0 THEN
LET n=n+1
END IF
NEXT d
NEXT c
NEXT b
NEXT a
PRINT n
END
   12月13日(木) 6:09:22     40072
ハラギャーテイ
おはようございます。プログラムです。簡単なのに手間取りました。
   12月13日(木) 7:14:59     40074
uchinyan
はい,こんにちは。さて,今回の問題は...
うーん,あまりうまく解けませんでした。地道に場合分け。しかも,最初は和が 20 になる場合を忘れる体たらく。
まぁ,こんな感じで。

(ア + イ) * (ウ + エ) が 10 の倍数になるのは...
まず,式の対称性から ア + イ で場合分けして,ウ + エ が異なる値の場合は 2 倍,同じ値の場合はそのまま,とすればいいです。
また,値の範囲から,ア + イ = 5,10,15,20 で場合分けすればいいです。
ア + イ = 5 又は 15 の場合
ア,イ は 4 + 6 = 10 通り,ウ + エ は偶数になればいいので 5 * 5 + 5 * 5 = 50 通り,
ア + イ と ウ + エ が等しくなることはないので 2 倍して,10 * 50 * 2 = 1000 通り。
ア + イ = 10 の場合
ア,イ は 9 通り,ウ + エ は原則何でもいいですが,5,15 になる場合は既に数えているので除き,10 になる場合は 2 倍しないので,
9 * (10 * 10 - 10 - 9) * 2 + 9 * 9 = 1458 + 81 = 1539 通り。
ア + イ = 20 の場合
ア,イ は 1 通り,ウ + エ は原則何でもいいですが,5,10,15 になる場合は既に数えているので除き,20 になる場合は 2 倍しないので,
1 * (10 * 10 - 10 - 9 - 1) * 2 + 1 * 1 = 160 + 1 = 161 通り。
以上ですべてなので,
1000 + 1539 + 161 = 2700 通り
になります。

何かもっとうまい解法がありそうですね。

先の解法は,最初は和が 20 の場合を忘れていて後で慌てて付け加えたのでこんなになりましたが...

皆さんのを基にした改良版

(ア + イ) * (ウ + エ) が 10 の倍数になるのは...
まず,式の対称性から ア + イ で場合分けして,ウ + エ が異なる値の場合は 2 倍,同じ値の場合はそのまま,とすればいいです。
また,値の範囲から,ア + イ = 5,10,15,20 で場合分けすればいいです。
ア + イ = 5 又は 15 の場合
ア,イ は 4 + 6 = 10 通り,ウ + エ は偶数になればいいので 5 * 5 + 5 * 5 = 50 通り,
ア + イ と ウ + エ が等しくなることはないので 2 倍して,10 * 50 * 2 = 1000 通り。
ア + イ = 10 又は 20 の場合
ア,イ は 9 + 1 = 10 通り,ウ + エ は原則何でもいいですが,5,15 になる場合は既に数えているので除き,
ア + イ と ウ + エ が等しくなる場合は 2 倍しないので,
10 * (10 * 10 - 10) * 2 - 10 * 10 = 1800 - 100 = 1700 通り。
以上ですべてなので,
1000 + 1700 = 2700 通り
になります。

ちょっとは見やすくなったかな (^^;
ネコの住む家   12月13日(木) 15:10:01     40075
巷の夢
ダブりにずっと気づかず、2918でどうして駄目なのかと・・・・。きちんと組み合わせを書き出し、やっと気づきました。
   12月13日(木) 11:48:01     40076
uchinyan
掲示板を読みました。
要は,ベン図などを頭に置きながら,いかに重複を避けてうまく数えるか,のようです。

#40067,#40068,#40069
X + Y が
2 の倍数 かつ 5 の倍数ではない,5 の倍数 かつ 2 の倍数ではない,10 の倍数,いずれにも該当しない
と場合分けして考える解法。
なるほど,これが単純だけど分かりやすそうですね。

#40070,#40071,#40079
10 の倍数になるのは,(10 の倍数)×(何でも良い) 又は (5 の倍数)×(偶数),と考えて計算し,重複を除く解法。

#40075
式の対称性を考慮しながら ア + イ で場合分けし,重複を除きながら数える解法。
基本的には #40070 などと同じだと思いますが,少しアプローチが違うので別分類にしました。

#40072,#40074
プログラムによる解法。
ネコの住む家   12月13日(木) 15:05:50     40077
次郎長
なんて難しいんだ!
5分で解けると思って始めたのに、訳が分からなくなって、結局2時間近くかかってしまった。ああ、これで昼から仕事に集中できる。
   12月13日(木) 12:20:40     40078
asuka
X+Yの値の取り方で分類。
X+Yが10の倍数になるとき、10通り、10の倍数にならないとき90通り。(ア+イ)×(ウ+エ)が10の倍数になるのは、この組合せで、10×10+10×90×2=1900通り。
X+Yが5の倍数になる場合、10通り。このとき、他方のX+Yは偶数になるので50通りだが、10の倍数になる10通りを引いて40通り。(ア+イ)×(ウ+エ)が10の倍数になるのは、10×40×2=800通り
したがって、 1900+800=2700通り
(あめいさん#40070、数楽さん#40071とほぼ同じです)
   12月13日(木) 13:01:50     40079
ゴンとも
十進basic で取り出す順にa,b,c,dとして

LET s=0
FOR a=1 TO 10
FOR b=1 TO 10
FOR c=1 TO 10
FOR d=1 TO 10
IF MOD((a+b)*(c+d),10)=0 THEN LET s=s+1
NEXT d
NEXT c
NEXT b
NEXT a
PRINT s
END

f9押して 2700・・・・・・(答え)
豊川市   12月13日(木) 20:07:15   MAIL:fttnm528@ybb.ne.jp   40080
アナゴ
カードの選び方は10^4=10000通りです。
そこから10の倍数にならない場合を引いて答えを求めます。
その為の条件は2種類あります。
(1) (ア+イ)、(ウ+エ)が共に2の倍数ではない場合
(2) (ア+イ)、(ウ+エ)が共に5の倍数ではない場合
単純に(1)と(2)を足しただけではダブリが生じるので
(3) (ア+イ)(ウ+エ)が共に2の倍数でも5の倍数でもない場合
を考え、(1)+(2)-(3)を求めます。
この問題の場合(ア+イ)と(ウ+エ)のパターンは同じだけあり
アを自由にとってもイで選べる数字の数に変化はないと考えられるので
イの選び方は(1)の場合は5通り、(2)の場合は8通り、(3)の場合は4通りとなります。

あとはそれで計算したら2700通りになりました。
   12月13日(木) 21:10:51     40081
まるケン
基本的には、10 の倍数になるのは,(10 の倍数)×(何でも良い) 又は (5 の倍数)×(偶数),と考えて計算し,重複を除く解法でした。

それはさておき、Rubyで無理やりワンライナー
ruby -e 'p ("0000".."9999").map{|d|1if(d[0]+d[1]-94)*(d[2]+d[3]-94)%10==0}.nitems'

1文字でも短くしたかったので、可読性を無視して、省けるスペースなどはとっちゃっています。
("0000".."9999")は、「"0000"から"9999"まで」と言う意味。で、その中身についてそれぞれ計算させています。
"0000"の次が"0001"に、"0009"の次が"0010"になってくれます。すばらしい!
d[n]は文字コードの値になります。"0"なら48、"9"なら57です。(ver 1.9系だと違うみたい)
"0"から"9"を、それぞれ1から10に対応させたいので、文字コードから47を引けばよいのですが、短くしたかったので、2つ足してから47×2を引いています。
実は、2の倍数の個数、5の倍数の個数は、この引き算をしなくても変わらないので、答えを出すだけなら、"-94"はいらなかったりしますが、、、
で、計算して10で割りきれれば1、そうでなければnil。
nitemsはnilでない要素数を返すので、最終的に2700が表示されます。
な・い・しょ!   12月14日(金) 14:01:57   MAIL:take4310@mobile.email.ne.jp HomePage:まるケンの部屋  40082
まるケン
ruby 1.9.x系では、文字列に対する[]演算子は、部分文字列を返すようになったようです。文字コードは返してくれません。
また、nil以外の要素数を返すnitemsメソッドもなくなったみたい。
ということで、とりあえず1.9.xで動くように書き直してみたけど、長くなっちゃって、ワンライナーの魅力半減です。
ruby -e 'p ("0000".."9999").map{|d|d=d.codepoints.to_a;1if(d[0]+d[1]-94)*(d[2]+d[3]-94)%10==0}.count{|n|n}'

ちなみに、codepointsは新しいメソッドなので、1.8.7とかだと動きません。
な・い・しょ!   12月14日(金) 17:48:34   HomePage:まるケンの部屋  40083
マサル
ruby、そんなドラスティックな仕様変更があるんですねぇ。perlは4系から5系で大きく変わりましたが、過去のコードは(ほぼ)すべて動くようになっていたかと思います。実はperlも5系以降のオブジェクト指向的な書き方はいまだに慣れません....(^^;
MBA   12月14日(金) 21:42:32   HomePage:算チャレ  40084
ひろ
場合分けで解きました。(2,5,10の倍数)
その後、Excelでも解きました。
   12月14日(金) 22:18:57     40085
ばち丸
ア+イが2の時、3の時、・・・、20の時と19通りに場合分けしそれぞれの対応するウ+エの値の取りうる数をすべて挙げ、数えました。
#40075
uchinyanさん。あいかわらず賢いね。
   12月14日(金) 22:47:12     40086
アナゴ
この問題をもう少し一般化すると
(ア+イ)をX、(ウ+エ)をYとおいて、X*Yが10の倍数であるとします。
XとYを5で割った余りを少なくとも一方は0であることに注意すると
(0,0)(0,1)(0,2)(0,3)(0,4)(1,0)(2,0)(3,0)(4,0)の9通りに場合分けできます。
次にXとYを2で割った余りを同じように場合分けすると、(0,0)(0,1)(1,0)の3通りに分けられます。
アとウは最初自由に設定できるので、10*10*9*3=2700で答えを得られます。
算数ではないような気もしますが…。
   12月15日(土) 5:57:16     40087
老算兵
2数の合計の下一桁に注目し4つに分類します
 � 。亜複隠阿稜椰瑤任后法。隠按未�
 �◆。機         。隠按未�
 �� その他の偶数     40通り
 �ぁ,修梁召隆饋堯    。苅按未�
    これに従い下記の表を作ります
      �    ´◆   ´�    ��
  �  。隠娃亜 。隠娃亜 。苅娃亜 。苅娃�
  �◆ 。隠娃亜 。隠娃亜 。苅娃亜 。苅娃�
  ��  400  400 1600 1600
  �ぁ 。苅娃亜 。苅娃亜。隠僑娃亜。隠僑娃�
    この表で�,料管瑤鉢◆澂�を拾えば  2700となります
   12月15日(土) 12:06:46     40088
アナゴ
老算兵さんの表は一目で理解できてしまいました。感服です。
しかもこれなら約数の多い数に対しても有効そうです。
勉強になりました。
   12月16日(日) 7:58:43     40089
おいらオイラー
ランキングにあった、ある方のお名前でわかりました(笑)
   12月17日(月) 20:08:40     40090
圭太
#40090
右ひじ左ひじ交互に見て さんですね。
気が付かなかったけど、後から考えれば・・・やヴぁいかも?!(
オリンポス山   12月17日(月) 23:57:15     40091
かわのん
A+B=5 ,C+D=5 ・・・それぞれ200通り
A+B=10,C+D=10・・・それぞれ900通り
A+B=15,C+D=15・・・それぞれ300通り
A+B=20,C+D=20・・・それぞれ100通りの合計3000通りの中から
重複するものを探すと、36+117+54+54+19+20=300で300通りとなり、
この2つより3000−300=2700[通り]となりました。

時計を見たら、1時間もかかっていました。
   12月18日(火) 14:40:57   MAIL:kawano60811933@yahoo.co.jp   40092

過去問題一覧へ戻る