投稿者:たろさ
投稿日:2016年12月13日(火)05時50分52秒
|
|
|
エラトステネスの篩を基に素数倍波を
座標値
x=x/PI*A(Cr)
y=SIN(x)*A(Cr)
グラフで見える化しました。
LET k=1000
LET k2=168
DIM P(k)
DIM A(k2)
SET WINDOW 460,480,-11,11 !x,y
DRAW grid0(1,1)
SET TEXT FONT "MS ゴシック",15
CALL prime(k)
SET POINT STYLE 7
FOR x=1 TO k/2
SET TEXT COLOR 2
PLOT TEXT ,AT x-.4,-.3 :STR$(x)
NEXT x
PRINT A(30);A(31)^2-1
FOR x=0 TO 800 STEP 0.01
FOR Cr=1 TO 30
SET POINT COLOR Cr+1
PLOT POINTS:x/PI*A(Cr),SIN(x)*A(Cr)
NEXT Cr
NEXT x
FOR x=1 TO k2
SET TEXT COLOR 4
PLOT TEXT ,AT A(x)-.4,-.3 :STR$(A(x))
NEXT x
SUB prime(v) !エラトステネスの奇数列篩
LET k9=v
LET h1=1
LET A(h1)=2
LET h1=2
FOR n1=3 TO k9 STEP 2
IF P(n1)=0 THEN
LET A(h1)=n1
LET h1=h1+1
IF h1>k9+1 THEN GOTO 20
END IF
FOR k1=n1 TO k9 STEP 2
LET m1=n1*k1
IF m1>k9 THEN GOTO 10
LET P(m1)=1
NEXT k1
10 NEXT n1
20
END SUB
END
CADの様に x軸方向に横スクロール出来たらいいなと思いました。
http://blogs.yahoo.co.jp/donald_stinger
|
|
|
投稿者:nagram
投稿日:2016年12月13日(火)11時55分40秒
|
|
|
> No.4192[元記事へ]
たろささんへのお返事です。
>CADの様に x軸方向に横スクロール出来たらいいなと思いました。
CADは知らないのですが、十進BASICでもグラフィックス画面の画素数を再設定することでスクロールさせることはできますよ。
グラフィックス画面の画素数はデフォルトでは641×641ですが、次のようにして変更することができます。
難点は、水平スクロールバーが描画領域内に設置されるため、その幅のぶん縦方向の描画領域がけずられ垂直スクロールバーも設置されてしまうことです。
LET k=1000
LET k2=168
DIM P(k)
DIM A(k2)
SET BITMAP SIZE 640*5+1,641 ! x軸方向にデフォルトの5倍拡張
SET WINDOW 460-40,480+40,-11,11 !x,y
DRAW grid0(1,1)
SET TEXT FONT "MS ゴシック",15
(以下略)
|
|
|
投稿者:たろさ
投稿日:2016年12月13日(火)18時59分35秒
|
|
|
> No.4193[元記事へ]
nagramさんへのお返事です。
> たろささんへのお返事です。
>
> >CADの様に x軸方向に横スクロール出来たらいいなと思いました。
>
> CADは知らないのですが、十進BASICでもグラフィックス画面の画素数を再設定することでスクロールさせることはできますよ。
> グラフィックス画面の画素数はデフォルトでは641×641ですが、次のようにして変更することができます。
> 難点は、水平スクロールバーが描画領域内に設置されるため、その幅のぶん縦方向の描画領域がけずられ垂直スクロールバーも設置されてしまうことです。
>
> LET k=1000
> LET k2=168
> DIM P(k)
> DIM A(k2)
> SET BITMAP SIZE 640*5+1,641 ! x軸方向にデフォルトの5倍拡張
> SET WINDOW 460-40,480+40,-11,11 !x,y
> DRAW grid0(1,1)
> SET TEXT FONT "MS ゴシック",15
> (以下略)
ありがとうございます。
OPTION ARITHMETIC NATIVE !2進モード
LET k=1010
LET k2=169
DIM P(k)
DIM A(k2)
SET BITMAP SIZE 640*63+1,641 ! x軸方向にデフォルトの5倍拡張
SET WINDOW 0,k,-11,11 !16*x,y
DRAW grid0(1,1)
SET TEXT FONT "MS ゴシック",13
CALL prime(k)
SET POINT STYLE 1
FOR x=1 TO k
SET TEXT COLOR 2
PLOT TEXT ,AT x-.4,-.3 :STR$(x)
NEXT x
PRINT A(30);A(31)^2-1
FOR x=0 TO 1600 STEP 0.01
FOR Cr=1 TO 30
!RANDOMIZE
!LET nr=1+INT(4*RND)
SET POINT COLOR 1+Cr
PLOT POINTS:x/PI*A(Cr),SIN(x)*A(Cr)
NEXT Cr
NEXT x
FOR x=1 TO k2
SET TEXT COLOR 4
PLOT TEXT ,AT A(x)-.4,-.3 :STR$(A(x))
NEXT x
SUB prime(v) !エラトステネスの奇数列篩
LET k9=v
LET h1=1
LET A(h1)=2
LET h1=2
FOR n1=3 TO k9 STEP 2
IF P(n1)=0 THEN
LET A(h1)=n1
LET h1=h1+1
IF h1>k9+1 THEN GOTO 20
END IF
FOR k1=n1 TO k9 STEP 2
LET m1=n1*k1
IF m1>k9 THEN GOTO 10
LET P(m1)=1
NEXT k1
10 NEXT n1
20
END SUB
END
http://blogs.yahoo.co.jp/donald_stinger
|
|
|
戻る