C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

全過去ログを検索

<< 0 >>
■24208  Re[1]: LINQの O/R で作成した継承クラスにデータを読込む方法
□投稿者/ 片桐 -(2008/08/29(Fri) 11:43:05)
    仕様背景がわからないのでなんともなんですが、
    そもそも、その継承して作ったクラス、継承しないといけない理由があるんでしょうか。
    自分でオリジナルの関数とか作りたいってだけならPertialクラスにしておいても良いんじゃないかなぁなんて思ったので。
    Inherits関係でなく、Pertial関係にしておいたら今の継承元をそのまま通常通りの手順で使えるとおもうのですけれど。

記事No.24166 のレス /過去ログ45より / 関連記事表示
削除チェック/

■49132  Global.asaxの定数の参照方法
□投稿者/ はすや -(2010/04/23(Fri) 13:42:58)

    分類:[ASP.NET (C#)] 

    Global.asaxにて以下のように定数を設定しています。
    これは他のcsから参照することが出来ません。

    <script runat="server">

    public static readonly string message1 = "aa";
    public static readonly string message2 = "bb";

    </script>

    どうやって使うのでしょうか??
親記事 /過去ログ83より / 関連記事表示
削除チェック/

■82955  Re[2]: バイナリエディタでDoubleを探す方法
□投稿者/ 魔界の仮面弁士 -(2017/02/21(Tue) 11:14:29)
    No82952 (774RR さん) に追記
    > 1.000000000000 と
    > 0.999999999999 と
    > 1.000000000001 とは違う数値になっちゃう。
    
    1.000000000001 は、内部的には (2^0 +2^-40 +2^-44 +2^-45 +2^-48 +2^-49) 相当ですね。
    
    「^」は、VB/VBA の冪演算子。(C# だと Math.Pow)
    
    
    Double バイナリを 2 進数で表記
    
    1.000000000000 → 0 01111111111 0000000000000000000000000000000000000000000000000000
    0.999999999999 → 0 01111111110 1111111111111111111111111111111111111101110011010001
    1.000000000001 → 0 01111111111 0000000000000000000000000000000000000001000110011000
    
    0.99999999999999978 → 0 01111111110 1111111111111111111111111111111111111111111111111110
    0.99999999999999989 → 0 01111111110 1111111111111111111111111111111111111111111111111111
    1.00000000000000000 → 0 01111111111 0000000000000000000000000000000000000000000000000000
    1.00000000000000020 → 0 01111111111 0000000000000000000000000000000000000000000000000001
    
    
    上記の Double バイナリを 10進小数に復元
    
    1.000000000000 →  1.00000000000000000000000000000000000000000000000000000
    0.999999999999 →  0.99999999999900002212172012150404043495655059814453125
    1.000000000001 →  1.00000000000100008890058234101161360740661621093750000
    
    0.99999999999999978 → 0.99999999999999977795539507496869191527366638183593750
    0.99999999999999989 → 0.99999999999999988897769753748434595763683319091796875
    1.00000000000000000 → 1.00000000000000000000000000000000000000000000000000000
    1.00000000000000020 → 1.00000000000000022204460492503130808472633361816406250
記事No.82950 のレス /過去ログ141より / 関連記事表示
削除チェック/

■99777  Re[11]: 正規表現で文字列の否定
□投稿者/ 匿名希望マン -(2022/05/29(Sun) 14:56:08)
    No99776 (匿名希望マン さん) に返信
    テスト結果はこちら https://ideone.com/Otqvqd

    > でも、本当にやりたいのは、こういう単なる文字列処理ではなく、決定性有限オートマトンから正規表現へ変換するアプローチなので、そちらも悩んで頑張って作ってみます!
    DFAを正規表現に変換するアルゴリズムは http://www.nue.ie.niigata-u.ac.jp/~aoto/lecture/Automata/ の「補足資料 (5)」に沿ってやればできそう!
記事No.99465 のレス / END /過去ログ173より / 関連記事表示
削除チェック/

■99841  Re[12]: 正規表現で文字列の否定
□投稿者/ 匿名希望マン -(2022/06/12(Sun) 23:04:41)
    自分で正規表現エンジン(という程たいそうなものではないですが)を作りつつ、
    この問題を考えてみていました。
    
    当初の興味は
     https://bynatures.hatenadiary.jp/entry/3317/ の方法でNGワードを長くしていくと、
     正規表現はどのくらい複雑になるのか?
    でした。
    
    しかし、http://www.formauri.es/personal/pgimeno/misc/non-match-regex/ を
    教えてもらい、そのうち、ジェネレーターを作ることが目的になってしまいました!
    楽しそうだったので。
    
    さて、以下の二つのアプローチで正規表現を生成していました。
     @ジェネレーターのサイトの出力を解析して、正規表現を出力するメソッドを作る
     ANGワードを与えてDFAを作り、そのDFAを正規表現に変換する
    
    @に関しては No99776 で報告しています。
    Aに関してはソースコードは割愛しますが、No99777 の資料に沿って実装してみました。
    No99776 と同様、正規表現を示すと以下のようになりました(先頭の5個のみ)。
     Regex01: ^[^0]*$
     Regex02: ^[^0]*0([^01][^0]*0|0)*([^01][^0]*)?|[^0]*$
     Regex03: ^[^0]*0([^01][^0]*0|0)*1(([^02][^0]*0|0)([^01][^0]*0|0)*1)*(([^02][^0]*0|0)([^01][^0]*0|0)*([^01][^0]*)?|([^02][^0]*)?)|([^0]*0([^01][^0]*0|0)*([^01][^0]*)?|[^0]*)$
     Regex04: ^[^0]*0([^01][^0]*0|0)*1(([^02][^0]*0|0)([^01][^0]*0|0)*1)*2(([^03][^0]*0|0)([^01][^0]*0|0)*1(([^02][^0]*0|0)([^01][^0]*0|0)*1)*2)*(([^03][^0]*0|0)([^01][^0]*0|0)*1(([^02][^0]*0|0)([^01][^0]*0|0)*1)*(([^02][^0]*0|0)([^01][^0]*0|0)*([^01][^0]*)?|([^02][^0]*)?)|(([^03][^0]*0|0)([^01][^0]*0|0)*([^01][^0]*)?|([^03][^0]*)?))|([^0]*0([^01][^0]*0|0)*1(([^02][^0]*0|0)([^01][^0]*0|0)*1)*(([^02][^0]*0|0)([^01][^0]*0|0)*([^01][^0]*)?|([^02][^0]*)?)|([^0]*0([^01][^0]*0|0)*([^01][^0]*)?|[^0]*))$
     Regex05: ^[^0]*0([^01][^0]*0|0)*1(([^02][^0]*0|0)([^01][^0]*0|0)*1)*2(([^03][^0]*0|0)([^01][^0]*0|0)*1(([^02][^0]*0|0)([^01][^0]*0|0)*1)*2)*3(([^04][^0]*0|0)([^01][^0]*0|0)*1(([^02][^0]*0|0)([^01][^0]*0|0)*1)*2(([^03][^0]*0|0)([^01][^0]*0|0)*1(([^02][^0]*0|0)([^01][^0]*0|0)*1)*2)*3)*(([^04][^0]*0|0)([^01][^0]*0|0)*1(([^02][^0]*0|0)([^01][^0]*0|0)*1)*2(([^03][^0]*0|0)([^01][^0]*0|0)*1(([^02][^0]*0|0)([^01][^0]*0|0)*1)*2)*(([^03][^0]*0|0)([^01][^0]*0|0)*1(([^02][^0]*0|0)([^01][^0]*0|0)*1)*(([^02][^0]*0|0)([^01][^0]*0|0)*([^01][^0]*)?|([^02][^0]*)?)|(([^03][^0]*0|0)([^01][^0]*0|0)*([^01][^0]*)?|([^03][^0]*)?))|(([^04][^0]*0|0)([^01][^0]*0|0)*1(([^02][^0]*0|0)([^01][^0]*0|0)*1)*(([^02][^0]*0|0)([^01][^0]*0|0)*([^01][^0]*)?|([^02][^0]*)?)|(([^04][^0]*0|0)([^01][^0]*0|0)*([^01][^0]*)?|([^04][^0]*)?)))|([^0]*0([^01][^0]*0|0)*1(([^02][^0]*0|0)([^01][^0]*0|0)*1)*2(([^03][^0]*0|0)([^01][^0]*0|0)*1(([^02][^0]*0|0)([^01][^0]*0|0)*1)*2)*(([^03][^0]*0|0)([^01][^0]*0|0)*1(([^02][^0]*0|0)([^01][^0]*0|0)*1)*(([^02][^0]*0|0)([^01][^0]*0|0)*([^01][^0]*)?|([^02][^0]*)?)|(([^03][^0]*0|0)([^01][^0]*0|0)*([^01][^0]*)?|([^03][^0]*)?))|([^0]*0([^01][^0]*0|0)*1(([^02][^0]*0|0)([^01][^0]*0|0)*1)*(([^02][^0]*0|0)([^01][^0]*0|0)*([^01][^0]*)?|([^02][^0]*)?)|([^0]*0([^01][^0]*0|0)*([^01][^0]*)?|[^0]*)))$
    この調子でRegex16を書くと、UTF-8で8MBを超えるテキストになります!
    No99777 の資料のアルゴリズムを使うなら、できるだけ短い正規表現を作るように工夫しないとダメですね。
    それか、改めて正規表現を短くするアルゴリズム(そんなのあるのか知らんけど)噛ますか。
    
    【まとめ】
    NGワードを長くすると、正規表現は長くなる!
    
    最後に所感。
     ・同じDFAでも、それと等価な正規表現はたくさんあるのかー!へぇー!
     ・No99777 の資料のアルゴリズムで、できるだけ短い正規表現を得るにはどうしたらいいのかな?
     ・DFAに最簡DFAがあるように、正規表現にも最も簡潔な正規表現が定義できて、それを得るアルゴリズムあるのかな?
     ・文字列の否定は正規表現で書けたけど、正規表現の否定って正規表現で書けるのかな?
    
記事No.99465 のレス / END /過去ログ173より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -