約 13,733 件
https://w.atwiki.jp/seasartaro/pages/59.html
Scalaではメソッドではなく関数と呼び、定義します。 def max(x Int , y Int) Int = if (x y) x else y; defの直後に関数名と引数を定義、その後に戻り値の型を書きます。 戻り値の型は、右辺での式の戻す型が推測できれば省略可能です。省略した形は以下。 def max(x Int , y Int) = if (x y) x else y; これを呼び出してみます。 println(max(3, 4)) 4が表示されるはずです。
https://w.atwiki.jp/honeybe/pages/18.html
標準関数配列操作shift unshift pop push sort reverse join split grep なにかあればこちら 標準関数 配列操作 shift unshift pop push sort reverse join $hoge = join(",", @moge); 配列要素を連結して文字列を返す。 split @moge = split(",", $hoge); 文字列を分割して配列を返す。 grep @moge = grep(!/^#/, @hoge); パターンに一致する配列を取り出す。例だと#から始まらない列(コメント行以外)を取り出す。 なにかあればこちら 名前 コメント
https://w.atwiki.jp/pocari/pages/6.html
関数プログラミングって何だ。 今までC++やJavaを中心に勉強してきた。 そんでプログラミングの方法論というと、構造化プログラミング、オブジェクト指向、ジェネリックプログラミングしか知らなかった。 ところが、PythonやLispを勉強してると、関数プログラミング(関数的プログラミング)っていうのが出てきた。これがオブジェクト指向一辺倒だった自分の目には新鮮に映った。ちょっと勉強してみよう。 ということで、関数プログラミングとは、のすり合せから。 以下、「ANSI Common Lisp」http //www.pearsoned.co.jp/washo/prog/wa_pro58-j.html のp.19より抜粋。 「関数プログラミングとは、副作用的に生じる変化によってではなく、 返り値をつかって動作するプログラムを書くことである。 (中略) 関数プログラミングでは、setf(*)のような副作用的な操作を原則的に 避ける。」 だそうです。
https://w.atwiki.jp/inclurithm/pages/26.html
ItemID関数 以下、ヘルプに載っていない関数により、仕様変更の可能性もあります。 そこらへんはご注意を。 ItemID関数 書式:ItemID(メインパイロット名またはユニットID,num) gt; gt; ユニットが装備しているnum番目のアイテムのIDを返します。 gt; gt; メインパイロット名に「未装備」を指定すると装備されていないnum番目のアイテムの名称を返します。 gt; gt; 装備しているアイテムの総数はCountItem関数を使って参照することが出来ます。 書式2:ItemID(num) gt; gt; パイロット名、ユニットIDを省略することで、デフォルトユニットが装備しているnum番目のアイテムのIDを返します。 まんまSRCヘルプのItem関数の項目の説明からのコピペですが、その通りItem関数と同等の使い方でOK。 しかし、アイテムIDを使うことには様々な利点があります。 Info関数 例:Info( quot;アイテム quot;, アイテムID, quot;特殊能力数 quot;) このように、Info関数のデータ項にも指定可能。 しかし、そのアイテムをユニットが装備していても、やはり"特殊能力解説"は空文字を返しやがります。チクショウ。 Equipコマンド 書式:Equip UnitID ItemID このように、アイテム名称の代わりに指定可能。 ここで特筆すべき点は、アイテムIDは一つのアイテムに対して一意に定められていること。 同名のアイテムを複数持っている状況で、第二引数にアイテム名称を指定した場合は装備されていないアイテムから優先して選択されます。 ここでアイテムIDを指定することによって、そのアイテムが誰かに装備されていたとしても、無理やり引っぺがして持ってきます。 RemoveItemコマンド 書式:RemoveItem [UnitID] [ItemID] RemoveItemコマンドでアイテムIDだけを引数に指定した場合、そのアイテムIDを持つアイテムが削除される。同名のアイテムでもIDが違えば削除されることはない。 また、ユニットIDを一緒に引数に指定しても、そのユニットがそのアイテムを装備してるかどうかに関わらず、そのアイテムIDを持つアイテムが削除される。 とりあえずこれだけ。仕様変更にならないことを切に願います…。
https://w.atwiki.jp/lgp4/pages/27.html
数値関数 計算を代行する関数です ABS 計算 絶対値を取得する 絶対値とは±ではなく+(正)の数だけのこと ABS(p1) 返り値 = 数値 p1 = 数値(int,float) A = -120 B = ABS(A) ACOS 計算 指定値のアークコサインを計算し、角度を返す ACOS(p1) 返り値 = 数値(float) p1 = 数値(float) A# = COS(180) B# = ACOS(A#) ASIN 計算 指定値のアークサインを計算し、角度を返す ASIN(p1) 返り値 = 数値(float) p1 = 数値(float) A# = SIN(180) B# = ASIN(A#) ASIN 計算 指定値のアークタンジェントを計算し、角度を返す ATAN(p1) 返り値 = 数値(float) p1 = 数値(float) A# = SIN(180) B# = ATAN(A#) ATOI 計算 文字列を整数値に変換する ATOI(p1) 返り値 = 数値(int) p1 = 数値(char) p1について char(文字列)を数値にする時に注意する点 符号:+,- 数値:1個以上の整数 守ること A = ATOI( "-305" ) ATOF 計算 文字列を固定小数点値に変換する ATOF(p1) 返り値 = 数値(float) p1 = 数値(char) p1について char(文字列)を数値にする時に注意する点 符号:+,- 数値:1個以上の小数,小数点を必ずつける 守ること A# = ATOF( "-245.245" ) COS 計算 三角関数のコサイン値を取得する COS(p1) 返り値 = 数値(float) p1 = 数値(float) A# = 180 B# = COS( A# ) EXP 計算 自然対数の底“e”の n乗を取得する EXP(p1) 返り値 = 数値(float) p1 = 数値(float) A# = 4 B# = EXP( A# ) LOG 計算 数値 n の自然対数を取得する LOG(p1) 返り値 = 数値(float) p1 = 数値(float) A# = 4 B# = LOG( A# ) LOG10 計算 数値 n の常用対数を取得する LOG10(p1) 返り値 = 数値(float) p1 = 数値(float) A# = 4 B# = LOG10( A# ) MAX 計算 2つの数値を比較して大きい方の数値を取得する MAX(p1) 返り値 = 数値(int,float) p1 = 数値(int,float) A = 4 B = 100 C = MAX( A , B ) MIN 計算 2つの数値を比較して小さい方の数値を取得する MIN(p1) 返り値 = 数値(int,float) p1 = 数値(int,float) A = 4 B = 100 C = MIN( A , B ) POW 計算 数値 n の m 乗を取得する POW(p1) 返り値 = 数値(float) p1 = 数値(float) A# = 4 B# = POW( A# , 20 ) RANDRESET 計算 疑似乱数の初期値を設定する RANDRESET(p1) p1 = 数値(int) RANDRESET() A = RAND() RAND 計算 0~32767 間の似乱数を返します RAND() 返り値 = 数値(int) RN = RAND( ) SGN 計算 数値 n の符号を取得する SGN(p1) 返り値 = 数値(int,float) p1 = 数値(int,float) A = 4 B = SGN( A ) SIN 計算 三角関数のサイン値を取得する SIN(p1) 返り値 = 数値(float) p1 = 数値(float) A# = 180 B# = SIN( A# ) SQRT 計算 数値 n の平方根を取得する SQRT(p1) 返り値 = 数値(int) p1 = 数値(int) A = 4 B = SQRT( A ) TAN 計算 三角関数のタンジェント値を取得する TAN(p1) 返り値 = 数値(float) p1 = 数値(float) A# = 180 B# = TAN( A# )
https://w.atwiki.jp/frostar/pages/29.html
描画関数 TransparentBltとAlphaBlendの使用にはmsimg32.libをリンクする必要がある BitBlt 基本的な描画関数。4つの中では一番高速、単純なコピー以外にもbit反転コピーなどもできる。 StretchBlt 拡大・縮小描画。 ただし、そんなにきれいな拡大・縮小は行われないので、AlphaBlendなどでサイズを変えて描画するほうがきれいになる。 TransparentBlt 透過色を指定して合成。 AlphaBlend 半透明合成を行う。 PlgBlt 平行四辺形に変形して描画。 マスク画像を指定して透過処理もできるが、WindowsXPだと、マスク指定しての透過処理か、平行四辺形描画の1回の処理ではどちらかしかできないらしい。
https://w.atwiki.jp/abwiki/pages/158.html
自然数eを底とする指数関数。 指数関数は級数展開で求めることができる。x 0 である時は、級数展開の各項に正負が交互に現れるため桁落ちが生じる。そこで、指数関数の逆数を計算することによりx 0の計算に直す。 収束を早めるため、x=t+k*ln(x), -ln(x)/2 x ln(x)/2 となるtとkを求め、Exp(x)=Exp(t)*2^kとする。 このほかに、連分数を使って求める方法もある。 ActiveBasicでは級数展開を用いたアルゴリズムでExp関数が用意されている。 #N88BASICConst LOG2 = 0.6931471805599453094172321214581765680755'log_e(2)Function lldexp(x As Double, k As Integer) As DoubleDim w As DoubleIf k = 0 Thenw = 2Elsew = 0.5k = -kEnd IfWhile kIf k And 1 Then x = x * ww = w * wk = k 1Wendlldexp = xEnd FunctionFunction lexp1(x As Double) As Double' 級数展開にて求めるDim i As Integer, k As Integer, neg As IntegerDim a As Double, e As Double, prev As DoubleIf x = 0 Thenk = x / LOG2 + 0.5' またはFix(x / LOG2 + 0.5)Elsek = x / LOG2 - 0.5' またはFix(x / LOG2 - 0.5)End Ifx = x - k * LOG2' 級数展開If x = 0 Thenneg = 0Elseneg = 1x = -xEnd Ife = 1 + xa = xi = 2Doprev = ea = a * x / ie = e + ai = i + 1Loop While e prevIf neg Then e = 1 / elexp1 = lldexp(e, k)End FunctionConst N = 22' 本文参照 (6, 10, 14, 18, 22, 26, ...)Function lexp(x As Double) As Double' 連分数展開にて求めるDim i As Integer, k As IntegerDim x2 As Double, w As DoubleIf x = 0 Thenk = x / LOG2 + 0.5' またはFix(x / LOG2 + 0.5)Elsek = x / LOG2 - 0.5' またはFix(x / LOG2 - 0.5)End Ifx = x - k * LOG2'連分数展開x2 = x * xw = x2 / NFor i = N - 4 To 6 Step -4w = x2 / (w + i)Next ilexp = lldexp((2 + w + x) / (2 + w - x), k)End Function'Dim i As IntegerDim x As DoubleFor i = -10 To 10x = i / 4.0Print "exp("; x; Ex"* log(2))\t"; lexp1(LOG2 * x); lexp(LOG2 * x), Exp(LOG2 * x)Next i
https://w.atwiki.jp/nopu/pages/214.html
関数オブジェクトは、STLのアルゴリズムと組み合わせて使う。 作り方 class FuncObj{ public void operator()( Hoge obj ); }; void FuncObj operator()( Hoge obj ){ cout obj.to_s() endl; } 使い方 Hoge hoge; FuncObj( hoge ); 応用 for_eachでコンテナの各要素に関数オブジェクトを作用させる #include algorithm std for_each( vec.begin(), vec.end(), FuncObj() ); 関数オブジェクトを引数にとる関数
https://w.atwiki.jp/frostar/pages/32.html
数学系は基本的にmath.hに標準で用意されている。 ただ、昔はPI(円周率)とかの定数も普通に使えたと思ったんだけど、なんか最近のだと使えなくなってるっぽいです。 _USE_MATH_DEFINESをdefilneすると (#define _USE_MATH_DEFINESをソースコードの最初らへんに書くと)使えるようになる。 使えるようになる定数の一部。 e(ネイピア数) M_E π(円周率) M_PI π/2 M_PI_2 π/4 M_PI_4 log(e) M_LOG10E ln(10) M_LN10 √2 M_SQRT2 math.hで提供される関数の中で角度を引数とする関数(sinとかcosとか)は角度をradian単位で指定する。 degree単位で指定したい場合は、以下の式でdegreeからradianに変換してから引き渡す。 radian = M_PI*degree/180.0;
https://w.atwiki.jp/memo101/pages/4.html
指数関数の作成 [1]プロット import pylab import pylab # -10 から 10 まで 0.1 刻みの配列をつくる (numpy.arange ) ... x = pylab.arange(-10.0, 10.0, 0.1) # 関数 numpy.sin x の各要素に Math.sin を適用して配列オブジェクトを生成 ... y = pylab.sin(x) # x,y を描画 ... pylab.plot(x,y, r* ) [] # 描画 ... pylab.show() [2] math.exp(x) REF [1]http //symfoware.blog68.fc2.com/blog-entry-1416.html 数式の作成 [2]http //docs.python.jp/2.4/lib/module-math.html 指数表示