トップページに戻る    記事(OTN)    記事(CodeZine)
2006年 2月16日から2007年 7月28日までのブログ
2007年 8月 1日から2007年10月28日までのブログ
2007年10月20日から2008年 5月 8日までのブログ
2008年 5月22日から2008年 9月 3日までのブログ
2008年 9月 4日から2009年 2月 4日までのブログ
2009年 2月 7日から2009年 5月20日までのブログ
2009年 5月22日から2009年 7月13日までのブログ
2009年 7月15日から2009年11月11日までのブログ
2009年11月14日から2010年 3月13日までのブログ
2010年 3月15日から2010年 7月21日までのブログ
2010年 7月24日から2011年 3月29日までのブログ
2011年 3月30日から2012年 1月11日までのブログ
2012年 1月18日から2014年 3月18日までのブログ
2014年 3月21日から2014年11月15日までのブログ
2014年11月22日から2015年 3月 1日までのブログ
2015年 3月15日から2015年 5月30日までのブログ
2015年 6月 7日から2018年 4月24日までのブログ
2018年 7月21日から2021年 2月19日までのブログ
最新のブログ

●2014年3月23日(日)
バックトラック問題で非常によく使う、深さ優先探索の雛形を作った。
C#メモ --- 深さ優先探索の雛形


●2014年4月2日(水)
C#メモ --- 匿名関数の即時実行
FuncデリゲートもしくはPredicateデリゲートを使って、C#で、RubyのIf式もどきも可能ですね。

C++メモ ostream_iteratorのサンプル
printfデバッグで使い道がありそう。


●2014年4月12日(土)
DataTableに対してLINQを使った後に、DataTableに戻す際に使える。
6-5 CopyToDataTable拡張メソッド


●2014年4月23日(水)
C++メモ --- デフォルトコピーコンストラクタでの配列の扱い
デフォルトコピーコンストラクタでは、
ビット単位でインスタンスのコピーが作成されます。
配列であっても、値がコピーされます。(DeepCopyと言える)


●2014年5月4日(日)
フラッシュバッククエリを使ったUpdate文で、データ復旧


●2014年5月10日(土)
C++メモ --- C++のPOD構造体


●2014年5月11日(日)
C#のサンプル集 --- Cマガ電脳クラブ(第001回) 10桁の数の怪
昔、買ったことがある雑誌のC MAGAZINEに連載されていた、Cマガ電脳クラブの問題を
C#とC++で解こうと思います。まずは、C#で解きます。


●2014年5月24日(土)
Cマガ電脳クラブ(第005回) コインの距離
Cマガ電脳クラブ(第010回) 偶数個の列

引数が1つだけで戻り値がbool型となる、Func<int, bool> は
Predicate<int> を使ったほうが、可読性が高いことに気がつきました。

Predicateデリゲートのほうが、意図が分かりやすいし
デリゲート名もIs + (形容詞や過去分詞)にできるし。


●2014年5月31日(土)
C#メモ --- Predicate,Func,Actionデリゲートのラムダ式でキャプチャされた引数は参照渡しだが、引数は値渡し
C#メモ --- Checkedステートメントでダウンキャスト時のオーバフロー検知


●2014年6月1日(日)
Cマガ電脳クラブ(第120回) 素性のよい整数たち
ユークリッドの互除法を、使ってみた。


●2014年6月14日(土)
C++メモ --- クラスの、コピーコンストラクタと代入演算子
メソッドの中で
*this = CTestClass(500,600);
という記述は、
コンストラクタの処理と、代入演算子の処理が実行される。


●2014年6月17日(火)
Cマガ電脳クラブの問題を20問程度解いたら、
プロジェクトオイラーで力任せで解けない問題に対して、
数学を使ったり、アルゴリズムを工夫したりして、解けるようにする面白さに気付きました。

Problem114 ブロックを離して一列に敷き詰める方法の数
Problem191 賞を貰える文字列

プロジェクトオイラーで問題の内容が理解できるものは、
力任せでは解けなそうな問題でも解いていきたいと思います。


●2014年7月6日(日)
ハナヤマのチェックメイクをC#で解きました。
1000円でここまで楽しめることに驚きました :-)

23-08 チェックメイク


●2014年7月20日(日)
東京駅近くの丸善でイージーキューブ2を買ってきた。


●2014年7月26日(土)
Cマガ電脳クラブを30問程度解きましたが、
有名パスル作家の芦ヶ原伸之さんが作成した???だけあって、問題が面白いです。
解く予定の問題154問中、29問解けました。

現在は、Cマガ電脳クラブ(第021回) 31ゲーム
に苦戦していて、ゲーム木について勉強中です。

さらに、私もCマガ電脳クラブを真似して、市販のパズルを解いてます。
C#のサンプル集 20-097 森のどうぶつパズル


●2014年8月3日(日)
Cマガ電脳クラブ(第021回) 31ゲーム
ゲーム木での完全解析は、分岐が多すぎるので中止して、
定跡DBなどを使って、コンピュータの思考を実装しました :-)


●2014年8月16日(土)
Cマガ電脳クラブを真似して、市販のパズルを解いてます。

16-03 Say Cheeseを解く際に、
反復深化深さ優先探索と、下限値枝切りの組み合わせが非常に強力なアルゴリズムであることを学習しました。

8-9 15パズルも反復深化深さ優先探索と、下限値枝切りの組み合わせで解けると考えて、
ハナヤマの23-11 15ゲームに挑戦しましたが、計算量多すぎて挫折しました・・・

さらに、下限値枝切りでプロジェクトオイラーの185問目も解けると思いましたが、
計算量多すぎて挫折しました・・・
Problem185 Number Mind

Cマガ電脳クラブとプロジェクトオイラーの問題に1通り挑戦してから、
解けなかった問題は、
A*法とか山登り法とか焼きなまし法といったアルゴリズムを本格的に勉強して解きたいですね。


●2014年8月23日(土)
ハナヤマの23-11 15ゲームは、分割統治法を使って、なんとか解けました。


●2014年9月27日(土)
.NETのバージョンが4未満の際に、
Parallel.Forの代わりとして、
System.Threading.Threadクラスの使用例

using System;
using System.Threading;

class Program
{
    static void Main()
    {
        const int ThreadCnt = 5;
        Thread[] ThreadArr = new Thread[ThreadCnt];

        Action<int> ExecSyori = (pInt) =>
        {
            for (int I = 1; I <= 100; I++) Console.Write(pInt);
        };

        for (int I = 0; I <= ThreadCnt - 1; I++) {
            ThreadArr[I] = new Thread(new ParameterizedThreadStart(
                (pObj) =>
                {
                    ExecSyori(Convert.ToInt32(pObj));
                }));
        }

        Console.WriteLine("並列処理開始");
        for (int I = 0; I <= ThreadCnt - 1; I++) {
            ThreadArr[I].Start(I);
        }
        Array.ForEach(ThreadArr, X => X.Join());
        Console.WriteLine();
        Console.WriteLine("並列処理終了");
    }
}

並列処理開始
00000000000000000000000000000001111111111111111111111111111111111111111111111111
11111111111111111111111111111111111111111111111111100000000000000000000000000000
00000000000000000000000000000000000000002222222222222222222222222222222222222222
22222222222222222222222222222222222222222222222222333333333333333333333333333333
33333444444444444444444444444444444444444444444444444444444444444444444444444444
44444444444444444444444443333333333333333333333333333333333333333333333333333333
33333333332222222222
並列処理終了


●2014年9月28日(日)
Cマガ電脳クラブの解いた問題が、52問になりました。
やっと150問中の3分の1程度が終わりました。

さらにプロジェクトオイラーを、1問解きました。
Problem27 二次式素数


●2014年10月4日(土)
コンピュータパズルへの招待 4問目 ペグソリティア 33穴英国盤
が計算量多すぎで挫折しました。

挫折した時は、簡単な問題を解くに限るということで簡単そうなのをリストアップした :-)
Cマガ電脳クラブ(第034回) 16スター
Cマガ電脳クラブ(第036回) 入れ換えて
Cマガ電脳クラブ(第049回) ツルみオセロ
Cマガ電脳クラブ(第068回) N龍


●2014年10月5日(日)
池袋東武の相棒の展示会に行ってきました。
10月15日から相棒13が放送されるのも楽しみです。


●2014年10月11日(土)
C#の配列の初期化の構文
3番目の構文が最も短く書けます。

int [] ar1 = new int [4] { 0, 1, 2, 3 };
int [] ar2 = new int [] { 0, 1, 2, 3 };
int [] ar3 = { 0, 1, 2, 3 };


●2014年10月19日(日)
Aggregate拡張メソッドの使用例

using System;
using System.Linq;

class Program
{
    static void Main()
    {
        int[] wkArr = { 1, 2, 3, 4, 5 };

        //Sum関数もどき
        Console.WriteLine(wkArr.Aggregate((X, Y) => X + Y));

        //Sum関数もどき(Seedを指定)
        Console.WriteLine(wkArr.Aggregate(10000, (X, Y) => X + Y));

        //総積を求める
        Console.WriteLine(wkArr.Aggregate((X, Y) => X * Y));
    }
}

//出力結果
15
10015
120


●2014年10月26日(日)
V$Sys_Optimizer_Env という動的パフォーマンスビューを使うと、
コストベースオプティマイザが使用するパラメータを見ることができる。

SQL> select Name,Value
  2    from V$Sys_Optimizer_Env
  3  order by Name;

Name                                  Value
------------------------------------  -------------
active_instance_count                 1
bitmap_merge_area_size                1048576
cell_offload_compaction               ADAPTIVE
cell_offload_plan_display             AUTO
cell_offload_processing               true
cpu_count                             1
cursor_sharing                        exact
db_file_multiblock_read_count         28
dst_upgrade_insert_conv               true
hash_area_size                        131072
is_recur_flags                        0
optimizer_capture_sql_plan_baselines  false
optimizer_dynamic_sampling            2
optimizer_features_enable             11.2.0.1
optimizer_index_caching               0
optimizer_index_cost_adj              100
optimizer_mode                        all_rows
optimizer_secure_view_merging         true
optimizer_use_invisible_indexes       false
optimizer_use_pending_statistics      false
optimizer_use_sql_plan_baselines      true
parallel_autodop                      0
parallel_ddl_mode                     enabled
parallel_ddldml                       0
parallel_degree                       0
parallel_degree_limit                 65535
parallel_degree_policy                manual
parallel_dml_mode                     disabled
parallel_execution_enabled            false
parallel_force_local                  false
parallel_max_degree                   2
parallel_min_time_threshold           10
parallel_query_default_dop            0
parallel_query_mode                   enabled
parallel_threads_per_cpu              2
pga_aggregate_target                  90112 KB
query_rewrite_enabled                 true
query_rewrite_integrity               enforced
result_cache_mode                     MANUAL
skip_unusable_indexes                 true
sort_area_retained_size               0
sort_area_size                        65536
star_transformation_enabled           false
statistics_level                      typical
total_cpu_count                       1
transaction_isolation_level           read_commited
workarea_size_policy                  auto


●2014年11月1日(土)
津島博士のパフォーマンス講座
しばちょう先生の試して納得!DBAへの道
を読んで勉強する


●2014年11月2日(日)
パズルショップ・トリトで買ってきた。
ハンドソルブで解けなかったら、C#で解きたいと思います。

ヨドバシカメラとは品揃えが違っていて、
見るだけでも楽しめたので、また来年の春にでも、またトリトに行こうと思います。

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
ハナヤマのラッキーパズル
   

■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
ハナヤマの時間どろぼう


■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
小田原充宏さんの12ドミノベスト


■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
ニコリのペンシルパズル入門


●2014年11月3日(月)
ハナヤマのラッキーパズルをC#で解くアルゴリズムを考えたのですが、
ほぼ無理だと気付きました。

そんなわけでC#では解かずに、普通にパズルとして遊ぼうと思います。


●2014年11月4日(月)
今年の5月から解き始めた、Cマガ電脳クラブの問題ですが、
解いた問題が、157問中の60問になり、約4割が終わりました。


●2014年11月11日(火)
皮膚科に診察に行ったら、様子見して1年後に再診察と言われたので、
1年後に予約して行きたい。


●2014年11月12日(水)
ハナヤマの時間どろぼうが、ハンドソルブできなかったので、C#で解きました。
23-01 時間どろぼう

パズルは、敷き詰めパズルとか、スライドパズルとか、ペンシルパズルのような
ハンドソルブで解けなかったらC#で解けるものがいいですね。


●2014年11月15日(土)
歯医者で親不知を抜歯してもらいました。

プロジェクトオイラーを2問解きました。
Problem71 順序分数
Problem72 分数の数え上げ

Problem72で、オイラーのファイ関数というのを初めて知りました、
数学について、勉強し続けて、オイラーのファイ関数について
深く理解したいと思います。


TOEIC    わくすたブログ    DSP受験記   C++のサンプル集   C#のサンプル集    MSDN とことん VC++    @IT C#入門