Mathematica、Wolfram言語

数学研究するための問題の変形方法-Part3-1

こんにちは。投稿頻度が遅くなってしまい、申し訳ございません。今回も、数学研究するための問題変形方法について説明したいと思います。

今回の問題はこちら

今回の問題
9枚の札に1〜9までの数字が一つずつ書かれています。この中から3枚の札を抜き出し、3桁の整数Aを作ります。次に残った6枚の札の中から3枚の札を抜き出し、3桁の整数Bを作ります。次の□に適当な数を入れなさい。
(1)整数Aが奇数になり、整数Bが偶数になるような整数A,Bの組み合わせは全部で□個あります。
(2)整数Aと整数Bの差は最も小さい場合で、最も大きい場合でになります。
(平成30年度 慶應義塾中等部)

今回はこの問題をコードにしていきます。

(1)整数Aが奇数になり、整数Bが偶数になるような整数A,Bの組み合わせは全部で□個あります。

コードのヒント

コードのヒント

※これはプログラムですので、プログラムはいくつも考えられます。今回はその一例のコードのヒントを掲載します。

以下のように出力するといいでしょう。

{a,b,c,d,e,f}  a~fは重複のない1~9の整数

a,b,cは整数A

d,e,fは整数B

コードの答え

コードの答え(例)

!=と表示させます。(どちらでも使用可能です)

<コード>

aa = Select[Tuples[Range[9], 6],

(#[[1]] != #[[2]] != #[[3]] != #[[4]] != #[[5]] != #[[6]]) &];
Length[Select[aa, OddQ[#[[3]]] && EvenQ[#[[6]]] &]]

<mathematicaの図>

よって、答えは16800

(2)整数Aと整数Bの差は最も小さい場合でア、最も大きい場合でイになります。

コードのヒント

コードのヒント

新しい変数を作り、条件に合うものをSelectします。

コードの答え

コードの解答(例)

<コード>

aaa = Select[aa, 100*#[[1]] + 10*#[[2]] + #[[3]] <
100*#[[4]] + 10*#[[5]] + #[[6]] &];
Select[aaa, (100*#[[4]] + 10*#[[5]] + #[[6]] – 100*#[[1]] – 10*#[[2]] – #[[3]]) < 15 &]

<mathematicaの例>

最後の15の値を順番に代入していき、計算結果に空集合のマークが出るとそこが答えになります。よって、最小14  最大864

次回はこの問題の変形について紹介します。

コメント

タイトルとURLをコピーしました