LoginSignup
1
0

More than 1 year has passed since last update.

整数数学A「2022年一橋大学前期第1問」2^a*3^b+2^c*3^d=2022を,エクセルvbaとsympyで

Last updated at Posted at 2022-04-07

問題

 0 以上の整数 a , b , c , d の組
2^a*3^b+2^c*3^d=2022
2**a+3**b+2**c+3**d=2022

大学入試数学問題集成>

解答

一橋の問題は素直であるが、誘導も少なく、難易度は高い。 < 河合塾分析より
難易度標準で解答2頁でした。

整数問題の基本事項...地道な作業が必要なところもあります。 < わか様より

エクセルvbaで

あっという間に結果がでました。エクセルすごいですね。
素数も考えなくて、いいですね。(20220425)

'nMax = 2022
'実行時エラー '6':
'オーバーフローしました。
Sub aaa_main()
nMax = Int(Log(2022) / Log(2)) + 1
ActiveSheet.Cells.Clear
MsgBox "実行を開始します"
iR = 0
For i = 0 To nMax
For j = 0 To nMax
For k = 0 To nMax
For l = 0 To nMax
    If 2 ^ i * 3 ^ j + 2 ^ k * 3 ^ l = 2022 Then
       iR = iR + 1
       Cells(iR, 1) = i
       Cells(iR, 2) = j
       Cells(iR, 3) = k
       Cells(iR, 4) = l
    End If
Next
Next
Next
Next
End Sub
'1	5	9	1
'9	1	1	5

SymPy Liveで(Pycharmでも)

以下サイトに、ソースコードを貼り付けて、Evaluateです。

from sympy import *
# nMax=2022 恐ろしくて、途中であきらめました。どなたか時間を計ってみてください。
nMax=int(log(2022)/log(2))+1
for i in range(nMax):
    for j in range(nMax):
        for k in range(nMax):
            for l in range(nMax):
                 if 2**i*3**j+2**k*3**l==2022:
                    print("#",i,j,k,l)
# 1 5 9 1
# 9 1 1 5

ついでに(失礼な!!) wolframalphaも

興味のある方は、どうぞ。
何かあるのでしょうね。奥が深そうです。解説してもらうと助かります。

感想

先に解答の一番下を見て、出力とあっていたのでほっとしました。
やってて、ワンパターン化してきました。
excelのある時代に、整数解の問題はたいへんですね。何とかならないものですか?
選抜試験ですから。

1
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0