SCV:重み付けランダムデータ生成(値)

scv_bagを使ってランダムの確率分布を指定することが出来ます。

  • サンプルコード

  •  1|#include <scv.h>
     2|
     3|int sc_mainint argc, char* argv[] ) {
     4|
     5|  scv_bag<int> dist;
     6|  dist.add(0,15); // 50%
     7|  dist.add(1,8);  // 27%
     8|  dist.add(2,4);  // 14%
     9|  dist.add(3,2);  // 6%
    10|  dist.add(4,1);  // 3%
    11|
    12|  scv_smart_ptr<int> data_p( "data" );
    13|  data_p->keep_only05 );
    14|  data_p->set_mode(dist);
    15|  for (int i=0; i<30; i++) {
    16|    data_p->next();
    17|    printf( "[SCV] data = %d\n", data_p->read() );
    18|  }
    19|
    20|  return 0;
    21|}
  • 実行結果

  • $> ./main 
    
                 SystemC 2.2.0 --- Jan 15 2012 14:19:56
            Copyright (c) 1996-2006 by all Contributors
                        ALL RIGHTS RESERVED
    [SCV] data = 0
    [SCV] data = 0
    [SCV] data = 0
    [SCV] data = 2
    [SCV] data = 1
    [SCV] data = 0
    [SCV] data = 0
    [SCV] data = 0
    [SCV] data = 1
    [SCV] data = 0
    [SCV] data = 2
    [SCV] data = 0
    [SCV] data = 3
    [SCV] data = 0
    [SCV] data = 2
    [SCV] data = 4
    [SCV] data = 0
    [SCV] data = 4
    [SCV] data = 2
    [SCV] data = 4
    [SCV] data = 0
    [SCV] data = 1
    [SCV] data = 3
    [SCV] data = 0
    [SCV] data = 2
    [SCV] data = 1
    [SCV] data = 0
    [SCV] data = 1
    [SCV] data = 0
    [SCV] data = 0
    

さて、実際の結果は。。。

発生数 割合
0 15 50%
1 5 17%
2 5 17%
3 2 7%
4 3 16%


あ〜れ〜(笑)

関連記事

コメントの投稿

非公開コメント

プロフィール

Kocha

Author:Kocha
なんでもチャレンジ!(^o^)/
E-mail
github:Kocha
イベントカレンダー

カレンダー
06 | 2017/07 | 08
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 - - - - -
カテゴリ
OVP (4)
最新記事
最新コメント
アーカイブ
リンク
Twitter
アクセス人数