数論の問題
■ このスレッドは過去ログ倉庫に格納されています
0001匿名
2007/09/19(水) 12:47:110002132人目の素数さん
2007/09/19(水) 12:55:240003にょにょ ◆yxpks8XH5Y
2007/09/19(水) 16:19:430004132人目の素数さん
2007/09/20(木) 00:12:380005四国の住民
2007/10/12(金) 12:10:48この時二乗の和が1になればもとの入力した数を幸福数といいます。
たとえば365が幸福数です。
0006四国の住民
2007/10/12(金) 12:45:20いくらかという問題を解くプログラムです。(解の範囲は30以下としました。言語は十進BASICをつかいました。いろいろ式を自分で変えてたのしんでください。
10 FOR A=1 TO 30
20 FOR B=1 TO 30
30 FOR C=1 TO 30
40 FOR D=1 TO 30
50 FOR E=1 TO 30
60 FOR F=1 TO 30
70 IF A^B+C^D=E^F THEN PRINT A,B,C,D,E,F
80 NEXT F
90 NEXT E
100 NEXT D
110 NEXT C
120 NEXT B
130 NEXT A
140 END
0007四国の住民
2007/10/12(金) 14:42:216=1+2+3となるので6は完全数です。28=1+2+4+7+14となるので28も完全数です。
ここで約数の和というところを約数の積とした場合には乗法完全数といいます。
0008東京都内の大学生
2007/10/12(金) 15:07:21桁あふれするときは十進BASICの1000桁モードを使ってください。(1000桁モードの使い方はHELP参照)
10 FOR A=1 TO 30
20 FOR B=1 TO 30
30 FOR C=1 TO 30
40 FOR D=1 TO 30
50 FOR E=1 TO 30
60 IF FACT(A)=FACT(B)+FACT(C)+FACT(D)+FACT(E) THEN PRINT A,B,C,D,E
70 NEXT E
80 NEXT D
90 NEXT C
100 NEXT B
110 NEXT A
120 END
0009東京都内の大学生
2007/10/12(金) 15:09:0520 FOR B=1 TO 30
30 FOR C=1 TO 30
40 FOR D=1 TO 30
50 FOR E=1 TO 30
60 IF FACT(A)=FACT(B)+FACT(C)+FACT(D)+FACT(E) THEN PRINT A,B,C,D,E
70 NEXT E
80 NEXT D
90 NEXT C
100 NEXT B
110 NEXT A
120 END
0010東京都内の大学生
2007/10/12(金) 15:11:480011132人目の素数さん
2007/10/12(金) 15:17:15BCDEは可換なんだからもっとずっと計算量減らせるだろ。
0点。
0012132人目の素数さん
2007/10/12(金) 19:01:110013132人目の素数さん
2007/10/12(金) 19:02:400014NPOの職員
2007/10/15(月) 11:15:5610 FOR X=1 TO 10000
20 FOR Y=1 TO 10000
30 IF X*Y=16777216 THEN PRINT X,Y
40 NEXT Y
50 NEXT X
60 END
0015九州に住む元公務員
2007/10/15(月) 11:52:56プログラムの先頭に書いてあるA=TIMEというのは十進BASICのTIME関数を用いてプログラム開始時の時間をAに代入したものです。
そしてプログラム終了時の最後のほうでB=TIMEとしてプログラム終了時の時間をBに代入しました。
C=B-Aでプログラム実行にかかった時間Cがもとまります。(単位は秒)
10 LET A=TIME
20 FOR X=1 TO 100
30 FOR Y=1 TO 100
40 FOR Z=1 TO 100
50 IF (X^3)*Y+5*X*(Y^2)*Z+3*(Z^2)+31=3016 THEN PRINT X,Y,Z
60 NEXT Z
70 NEXT Y
80 NEXT X
90 LET B=TIME
100 LET C=B-A
110 PRINT C
120 END
式の形を変えていろんな不定方程式を解いてみましょう。
このプログラムでFORのところの100を200に変えてみてください。時間計算量が100*100*100から200*200*200にすなわち約8倍になるはずです。
興味があれば計算量の理論(計算複雑性の理論ともいいます。)の勉強もしましょう。
001650歳代のSOHO事業者
2007/10/15(月) 12:06:1310 LET X=1
20 LET X=X+1
30 LET Y=X*X
40 LET Z=Y-10000*INT(Y/10000)
50 IF Z<>1361 THEN GOTO 20
60 PRINT "X=";X,"X*X";X*X
70 END
001750歳代のSOHO事業者
2007/10/15(月) 12:32:0010 LET X=10
20 LET X=X+1
30 LET Y=X*X
40 LET Z=Y-1000*INT(Y/1000)
50 IF Z=0 THEN GOTO 20
60 LET A=Z/111
70 IF A<>INT(A) THEN GOTO 20
80 PRINT X,Y
90 IF X>10000 THEN GOTO 110
100 GOTO 20
110 END
0018132人目の素数さん
2007/10/15(月) 18:23:410019九州に住む元公務員
2007/10/16(火) 10:25:10Xだけに着目すれば3変数3次でもかまいませんが。
0020東京都内の中小業者
2007/10/16(火) 10:45:33例えば153=(1^3)+(5^3)+(3^3)は自己愛数です。自己愛数のことをアームストロング数あるいは完全数字変換ともいいます。
10 FOR I=100 TO 999
20 A=INT(I/100)
30 B=INT(I/10)-10*A
40 C=I-100*A-10*B
50 IF I<>(A^3)+(B^3)+(C^3) THEN GOTO 70
60 PRINT I
70 NEXT I
80 END
0021東北の住民
2007/10/17(水) 13:03:00但し出発点の数はA(1)=1,A(2)=1とします。いろいろと規則を変えて自分なりに楽しんでください。
10 DIM A(100)
20 LET A(1)=1
30 LET A(2)=1
40 FOR X=1 TO 100
50 LET A(X+2)=A(X+1)+A(x)
60 PRINT X+2,A(X+2)
70 NEXT X
80 END
0022関東地方に住む会社員
2007/10/17(水) 14:44:10例えば145=1!+4!+5!ですから145はファクトリオンです。各桁の階乗の積が自分自身になる数を第二種ファクトリオンといいます。
下記のプログラムは各桁の階乗の和が自分自身の整数倍となる数を求めるプログラムです。このような数を一般化ファクトリオンと呼んでは
どうでしょうか。プログラムを実行してみればわかりますが例えば997は733に対応する一般化ファクトリオンです。(それともすでに命名されているのでしょうか。)。
なおプログラム中ではSTR$とかVALとかLENなどの文字列関数が使われていますがそれらについては
十進BASICのヘルプを見てください。例えばLENはこのプログラムの場合文字列G$の文字数(長さ)を求めるものです。
10 FOR A=1 TO 10000
20 lET Z=1
30 LET G$=STR$(A)
40 LET Y=LEN(G$)
50 FOR F=1 TO Y
60 LET M$=G$(F:F)
70 LET C=VAL(M$)
80 LET V=FACT(C)
90 LET Z=Z+V
100 NEXT F
110 FOR S=1 TO 6000
120 IF S*A=Z THEN PRINT S,A
130 NEXT S
140 NEXT A
150 END
0023関東地方に住む会社員
2007/10/18(木) 11:17:10これとならんで例えば120に対応するファクトリオンは6になります。
0024関東地方に住む会社員
2007/10/18(木) 11:30:21分割数とは例えば4の場合4=4+0=3+1=2+2=2+1+1=1+1+1+1であるため4の分割数は5です。5の分割数は7です。6の分割数は11です。
10 LET S=0
20 FOR A=0 TO 5
30 FOR B=0 TO 5
40 FOR C=0 TO 5
50 FOR D=0 TO 5
60 FOR E=0 TO 5
70 IF A+2*B+3*C+4*D+5*E=5 THEN PRINT A,B,C,D,E
80 LET S=S+1
90 END IF
100 NEXT E
110 NEXT D
120 NEXT C
130 NEXT B
140 NEXT A
150 PRINT "S=分割数=”,S
160 END
0025匿名
2007/10/19(金) 14:32:210026132人目の素数さん
2007/10/19(金) 14:55:12ファクトリオンは明らかに有限個しかない。
なぜなら、ファクトリオンが(k+1)桁だとすると、
n≧10^k であるが、
ファクトリオンであることより、
n≦9!+9!+9!+ ... +9! = (k+1)9!
つまり、 (k+1)9! ≧ 10^k ・・・☆
知ってのとおり、 k = o(10^k) が成立するので、
(つまり、 k/10^k → 0 (k→∞))
nは上に有界であり、さらに☆を評価することで、
探査範囲を具体的な値で抑えることができる。
したがって、(私的には)その問題はそれで終わり。
ここに数論の問題がたくさんあるからオススメ。
http://myhome.cururu.jp/gersdorffite/blog
0027四国の住民
2007/10/23(火) 12:06:5820 REM あるスポーツ用品メーカーではバレーボール、サッカーボール、テニスボールをつくっています。
30 REM バレーボールは一個につき150円、サッカーボールは120円、テニスボールは30円の利益があります。
40 REM バレーボール一個につき原料Aを3単位、原料Bを4単位、原料Cを5単位、必要とします。サッカーボールについては一個につき
50 REM 原料Aを5単位、原料Bを3単位、原料Cを4単位、必要とします。テニスボールについては、一個につき原料Aを2単位、原料Bを3単位、
60 REM 原料Cを3単位必要とします。原料Aの供給可能量は一日あたり20単位、原料Bは25単位、原料Cは15単位です。
70 REM 以上の制約条件のもとで売上利益を最大にするには各ボールを何個作ればよいでしょうか。プログラムを作ってといてみました。
80 LET MAX=0
90 FOR X=0 TO 10
100 FOR Y=0 TO 10
110 FOR Z=0 TO 10
120 IF ( 3*X+5*Y+2*Z<=20) AND (4*X+3*Y+3*Z<=25) AND (5*X+4*Y+3*Z<=15) THEN
130 LET MAX2=150*X+120*Y+30*Z
140 END IF
150 IF MAX2>MAX THEN
160 LET MAX=MAX2
170 PRINT "MAX=",MAX,X,Y,Z
180 END IF
190 NEXT Z
200 NEXT Y
210 NEXT X
220 PRINT MAX
230 END
0028四国の住民
2007/10/23(火) 13:25:45まずこれはLP問題(線形計画法)です。
目的関数はMAX2=150*X+120*Y+30*Zです。
制約条件式はプログラム中でANDの前後の3つの不等式です。
■ このスレッドは過去ログ倉庫に格納されています