今、日経ソフトウェアの付録を読んでるんですけど
(既に読破したやつw)
演算の回路について読んで
(ANDとかORとかNOTとか)
回路的プログラミング言語ってのもあってよいかと思いました
ググればありそうですけど
例えばBIGNUMを書こうとした時
回路的プログラミングをした方が簡単に書けるのではないかと
例えば1桁をBYTEにして
10を越えれば上のBYTEに接続して加算
10かけるとかして上の桁に代入する時も
上のBYTEに接続して代入とか
桁はスタックで管理して
桁増やす時はスタックに積んで
代入するなら接続とか
代入って演算もいいけど
接続って演算があってもいい気がします
同じ動作だとしても別名でも嬉しそう
リテラルの代入が代入で
変数からの代入が接続とか
簡単にBIGNUMのフローチャートを書いてみようか
toString
文字列に代入
toBIGNUM
BYTE配列に代入
加算
桁の数だけ繰り返し
同じ桁を足して10の商を一つ上の桁に加算
大小比較
符合がプラスとプラスなら
桁が大きい方が大きい
符合がマイナスとマイナスなら
符合が大きい方が小さい
符合がプラスとマイナスなら
符合がプラスの方が大きい
桁が同じなら
桁の数だけ繰り返し
桁の数が異なる場合
数が大きい方が大きい
全部等しい時のみ等しい
符合無視大小比較
桁が大きい方が大きい
桁が同じなら
桁の数だけ繰り返し
桁の数が異なる場合
数が大きい方が大きい
全部等しい時のみ等しい
減算
お互い0以上
減算A
引かれる数の方がプラスで
引く数がマイナスだと
加算
引かれる数の方がマイナスで
引く数がプラスだと
加算(符合はマイナス)
お互いマイナス
減算B
減算A
大小比較して
引く数が大きいなら
引く数引く引かれる数
符合はマイナス
引かれる数が大きいなら
引かれる数引く引く数
符合はプラス
減算B
大小比較して
引く数が大きいなら
引く数引く引かれる数
符合はプラス
引かれる数が大きいなら
引かれる数引く引く数
符合はマイナス
10の乗数Xの掛け算
桁の数だけ繰り返し
それぞれの桁のX上の桁に代入
掛け算
演算結果変数宣言
掛けられる数の桁の数だけ繰り返し
掛ける数の桁の数だけ繰り返し
掛ける数の桁をX数値をIとする
掛けられる数の桁をY数値をJとする
K=I*J
K掛ける10のX+Y乗(10の乗数Xの掛け算)
演算結果変数宣言+=K
割り算
演算結果変数宣言=0
i=1
while 1
割られる数<割る数*10のi乗(10の乗数iの掛け算):break
i++
wend
i--
tmp=割られる数
for iii i回
for ii 1~10
tmp<割る数*ii*10のiii乗(10の乗数iiiの掛け算):break
next
ii--
tmp-=割る数*ii*10のiii乗(10の乗数iiiの掛け算)
演算結果変数宣言+=割る数*ii*10のiii乗(10の乗数iiiの掛け算)
next
フローチャートのはずがだんだんHSPっぽくなっていったとかw
2012年8月6日月曜日
2012年7月24日火曜日
色々な直線
前のmoduleを使用して色々な直線を引いてみました
本当は方程式を解いて直線ぴーん。がいいんですけど(笑)
本当はそうするつもりなんですけど
一般化がよくわかりません(笑)
そんな訳で今後の展開に期待!です
本当は方程式を解いて直線ぴーん。がいいんですけど(笑)
本当はそうするつもりなんですけど
一般化がよくわかりません(笑)
そんな訳で今後の展開に期待!です
#include "FILE_draw_graph_sub.hsp" graph_init ; y=x color $ff,0,0 graph_line 300,300,-300,-300 ; y=-x color $80,0,0 graph_line -300,300,300,-300 ; y=10(%) color 0,$ff,0 graph_line 300,30,-300,30 ; x=-10(%) color 0,$80,0 graph_line -30,300,-30,-300 ; y=2x color 0,0,$ff graph_line 150,300,-150,-300 ; y=0.5x color 0,0,$80 graph_line 300,150,-300,-150 ; y=0.5x+20(%) color 0,$ff,$ff graph_line 300,150+60,-300,-150+60 ; y=0.5(x+20(%)) color $ff,0,$ff graph_line 300,150-30,-300,-150-30 draw_zahyoujiku stop |
グラフ描画モジュール
自費出版の書籍には色々とグラフを載せたいと思ってまして
そうなると誰がグラフを書くのかよくわからなく
編集の人に頼むと費用がかさむことが予想され
なので自分でグラフを書いてしまえwと
まずはx軸y軸と目盛を書いてみました
ちなみにグラフは目盛の意味する数値をグラフごとに用意するのがめんどうなので
単位は%です
1とか10とか100とかじゃなく
1%とか10%とか100%として読んでください
ちなみに使用言語は描画なので楽なHSPです。知らない方、ごめんなさい
そうなると誰がグラフを書くのかよくわからなく
編集の人に頼むと費用がかさむことが予想され
なので自分でグラフを書いてしまえwと
まずはx軸y軸と目盛を書いてみました
ちなみにグラフは目盛の意味する数値をグラフごとに用意するのがめんどうなので
単位は%です
1とか10とか100とかじゃなく
1%とか10%とか100%として読んでください
ちなみに使用言語は描画なので楽なHSPです。知らない方、ごめんなさい
// FILE_draw_graph_sub.hsp /* graph_init color $ff,0,0 graph_line 300,300,-300,-300 color 0,$ff,0 graph_line -300,300,300,-300 draw_zahyoujiku stop //*/ #module m_draw_graph #deffunc graph_init screen 0,600,600 return #deffunc graph_line int p_x_A,int p_y_A,int p_x_B,int p_y_B tmp_x_A=p_x_A+300 tmp_x_B=p_x_B+300 tmp_y_A=600-p_y_A-300 tmp_y_B=600-p_y_B-300 line tmp_x_A,tmp_y_A,tmp_x_B,tmp_y_B ; line tmp_x_A,0,0,600 return #deffunc draw_zahyoujiku color 0,0,0 // x軸の座標軸描画 line 299,0,299,600 line 300,0,300,600 // y軸の座標軸描画 line 0,299,600,299 line 0,300,600,300 // x軸の+の目盛描画 repeat 10,1 x1=300-5 x2=300+4 line x1,(300-(30*cnt)),x2,(300-(30*cnt)) loop // x軸の-の目盛描画 repeat 10,1 x1=300-5 x2=300+4 line x1,(300+(30*cnt)-1),x2,(300+(30*cnt)-1) loop // y軸の+の目盛描画 repeat 10,1 y1=300-5 y2=300+4 line (300-(30*cnt)),y1,(300-(30*cnt)),y2 loop // y軸の-の目盛描画 repeat 10,1 y1=300-5 y2=300+4 line (300+(30*cnt)-1),y1,(300+(30*cnt)-1),y2 loop font "",10 // y軸の+の目盛(数値)描画 ; pos 0,0 ; mes "100" ; logmes ""+ginfo_mesx//15 ; logmes ""+ginfo_mesy//10 _4mes_n=100 repeat 10,0 pos (300-5-15),(cnt*30) mes _4mes_n _4mes_n-=10 loop // y軸の-の目盛(数値)描画 ; pos 0,0 ; mes "-100" ; logmes ""+ginfo_mesx//20 ; logmes ""+ginfo_mesy//10 _4mes_n=-100 repeat 10,0 pos (300-5-20),(600-cnt*30-10) mes _4mes_n _4mes_n+=10 loop // x軸の-の目盛(数値)描画 ; pos 0,0 ; mes "-100" ; logmes ""+ginfo_mesx//20 ; logmes ""+ginfo_mesy//10 _4mes_n=-100 repeat 10,0 pos (0+cnt*30),(300-5-10) mes _4mes_n _4mes_n+=10 loop // x軸の+の目盛(数値)描画 ; pos 0,0 ; mes "100" ; logmes ""+ginfo_mesx//15 ; logmes ""+ginfo_mesy//10 _4mes_n=10 repeat 10,0 pos (300+(cnt+1)*30-15-1),(300-5-10) mes _4mes_n _4mes_n+=10 loop return #global |
物語
出来る人ってそれに対して物語があるとか
プログラミングするとか、読書するとかは
小さい物語なのかな?
プログラム(小さいけどw)を完成させたい。とか
これを読破する!とか
僕はあんまり大きい物語はなくて
まー2個くらいある気もするけど
それもなんか曖昧やし
小さい何個かの物語を並行してこなしてるってのが僕の日常
そー言えば英語も少々勉強してるけど
それも出来る高校生くらい英語が上手くなって
英語サイトを色々巡回したいという物語♪
そしてもちろん自費出版に向けて頑張るのも僕の物語♪
曖昧すぎて全然はかどりませんがw
プログラミングするとか、読書するとかは
小さい物語なのかな?
プログラム(小さいけどw)を完成させたい。とか
これを読破する!とか
僕はあんまり大きい物語はなくて
まー2個くらいある気もするけど
それもなんか曖昧やし
小さい何個かの物語を並行してこなしてるってのが僕の日常
そー言えば英語も少々勉強してるけど
それも出来る高校生くらい英語が上手くなって
英語サイトを色々巡回したいという物語♪
そしてもちろん自費出版に向けて頑張るのも僕の物語♪
曖昧すぎて全然はかどりませんがw
2012年7月12日木曜日
高階関数
なんでHSPには高階関数無いんだ?Javaにもw
いやHSPで継承もどきしてて
#modfuncが継承したい数必要なんです
自動で命令継承してくれればいいのに
そういう言語が作りたい
って思ったら
高階関数があればいいのか。と
関数もらってオブジェクトに対して実行すればいいのか。と
でもよく考えれば多重継承が出来ればいいのか
例えばStringのオブジェクト
初期化。set getのメソッドを持つのを2個持ってたとして
単継承だと2個継承出来ないし
それ継承すると他継承できないし
継承したい時毎回6つメソッド作るのめんどくさいし
でも多重継承だとなんとかなりそw
Rubyみたいにmix-inでもいいですね
Rubyには高階関数あるけどw
って気付いたw
まぁ。何もせず命令呼ぶだけやから
たいしたことないっちゃーたいしたことないんですけど
めんどくさいけどね
僕は主にモジュールを作成しているので
それを対象とした言語作成とか目指してもいいのかな?
いやHSPで継承もどきしてて
#modfuncが継承したい数必要なんです
自動で命令継承してくれればいいのに
そういう言語が作りたい
って思ったら
高階関数があればいいのか。と
関数もらってオブジェクトに対して実行すればいいのか。と
でもよく考えれば多重継承が出来ればいいのか
例えばStringのオブジェクト
初期化。set getのメソッドを持つのを2個持ってたとして
単継承だと2個継承出来ないし
それ継承すると他継承できないし
継承したい時毎回6つメソッド作るのめんどくさいし
でも多重継承だとなんとかなりそw
Rubyみたいにmix-inでもいいですね
Rubyには高階関数あるけどw
って気付いたw
まぁ。何もせず命令呼ぶだけやから
たいしたことないっちゃーたいしたことないんですけど
めんどくさいけどね
僕は主にモジュールを作成しているので
それを対象とした言語作成とか目指してもいいのかな?
2012年7月11日水曜日
価格と販売量の関係
グラフありますよね
需要と供給と価格のグラフで
価格と販売量はその接点で決まるってグラフ
有名なグラフです
高校でも軽く習ったような
大学でもよく出たような
(僕は経済学部卒です)
で、その需要曲線とか供給曲線を求める仮の数式を考えました
たぶん2、3年前に
現在の供給をX
現在の価格をYとします
その上で例えば
価格が20%下がれば
販売量が2倍になるのです
更に価格が20%下がれば
販売量が更に2倍になるのです
価格が20%上がれば
販売量は半分になるのです
更に価格が20%上がれば
販売量が更に半分になるのです
価格を安くしたい場合
Y2:売りたい価格=(Y1:現在の価格)の0.8のZ乗
なら
X2:売れる数量=(X1:現在売れている数)の2.0のZ乗
になります
価格を高くしたい場合
Y2:売りたい価格=(Y1:現在の価格)の1.2のZ乗
なら
X2:売れる数量=(X1:現在売れている数)の0.5のZ乗
になります
僕が自費出版用の文章に載せるプログラムの終着駅の一つは
この数式を解くプログラムを作成することです
単純だけど難しそうで先は長いです
需要と供給と価格のグラフで
価格と販売量はその接点で決まるってグラフ
有名なグラフです
高校でも軽く習ったような
大学でもよく出たような
(僕は経済学部卒です)
で、その需要曲線とか供給曲線を求める仮の数式を考えました
たぶん2、3年前に
現在の供給をX
現在の価格をYとします
その上で例えば
価格が20%下がれば
販売量が2倍になるのです
更に価格が20%下がれば
販売量が更に2倍になるのです
価格が20%上がれば
販売量は半分になるのです
更に価格が20%上がれば
販売量が更に半分になるのです
価格を安くしたい場合
Y2:売りたい価格=(Y1:現在の価格)の0.8のZ乗
なら
X2:売れる数量=(X1:現在売れている数)の2.0のZ乗
になります
価格を高くしたい場合
Y2:売りたい価格=(Y1:現在の価格)の1.2のZ乗
なら
X2:売れる数量=(X1:現在売れている数)の0.5のZ乗
になります
僕が自費出版用の文章に載せるプログラムの終着駅の一つは
この数式を解くプログラムを作成することです
単純だけど難しそうで先は長いです
税金
最近、消費税増税が話題ですね
で、税について考えた
小飼弾氏が相続税の税率100%にすべきと書いていました
それなら財産税という考え方も出来ますよね
個人でも企業でも財産税
例えば相続税が100%じゃなく
毎年、財産の2%を税金で取られるかんじ
現状、相続税の対象もある額以上なので
財産が3000万円ある人はそれ以上の分の2%を税金にもっていかれる。と
企業は資産から負債を除いた分の1%を税金として支払う
ある額以上じゃないので1%。と
これは思いつきのようだけど
前、標準の利子がマイナスだとどうなる。と思考実験したことがあって
なら預金しなきゃいいか。って
そういう結論なんですけど
利子をマイナスにせずに
資産に税金をかけるんです
利子をマイナスにするようなものです
昔、利子が高かった頃
利子は収入のようで収入じゃなかったんです
資産も利子で増えるけど
それ以上に国内総生産が増えるので
相対的に財産の価値が減るんです
ならゼロ金利の利子で財産税を取られても
相対的に財産の価値が減ることは変わりません
財産は増やす能力のある人が維持できて
ない人は維持できない
それでもいいと思います
で、税について考えた
小飼弾氏が相続税の税率100%にすべきと書いていました
それなら財産税という考え方も出来ますよね
個人でも企業でも財産税
例えば相続税が100%じゃなく
毎年、財産の2%を税金で取られるかんじ
現状、相続税の対象もある額以上なので
財産が3000万円ある人はそれ以上の分の2%を税金にもっていかれる。と
企業は資産から負債を除いた分の1%を税金として支払う
ある額以上じゃないので1%。と
これは思いつきのようだけど
前、標準の利子がマイナスだとどうなる。と思考実験したことがあって
なら預金しなきゃいいか。って
そういう結論なんですけど
利子をマイナスにせずに
資産に税金をかけるんです
利子をマイナスにするようなものです
昔、利子が高かった頃
利子は収入のようで収入じゃなかったんです
資産も利子で増えるけど
それ以上に国内総生産が増えるので
相対的に財産の価値が減るんです
ならゼロ金利の利子で財産税を取られても
相対的に財産の価値が減ることは変わりません
財産は増やす能力のある人が維持できて
ない人は維持できない
それでもいいと思います
登録:
投稿 (Atom)

