スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

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

scv_bagを使ってランダムの確率分布を指定することが出来ます。
前回は値に対してですが、値の範囲に対しても同じことが可能です。

  • サンプルコード
  •  1|#include <scv.h>
     2|
     3|int sc_mainint argc, char* argv[] ) {
     4|
     5|  scv_bag<pair<int,int> > dist;
     6|  dist.add(pair<intint>(0,4),  15); // 50%
     7|  dist.add(pair<intint>(5,9),   8); // 27%
     8|  dist.add(pair<intint>(10,14), 4); // 14%
     9|  dist.add(pair<intint>(15,19), 2); // 6%
    10|  dist.add(pair<intint>(20,24), 1); // 3%
    11|
    12|  scv_smart_ptr<int> data_p( "data" );
    13|  data_p->keep_only024 );
    14|  data_p->set_mode(dist);
    15|  for (int i=0; i<50; 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 = 1
    [SCV] data = 8
    [SCV] data = 3
    [SCV] data = 5
    [SCV] data = 12
    [SCV] data = 17
    [SCV] data = 12
    [SCV] data = 2
    [SCV] data = 12
    [SCV] data = 0
    [SCV] data = 19
    [SCV] data = 13
    [SCV] data = 2
    [SCV] data = 2
    [SCV] data = 2
    [SCV] data = 3
    [SCV] data = 10
    [SCV] data = 7
    [SCV] data = 5
    [SCV] data = 8
    [SCV] data = 18
    [SCV] data = 7
    [SCV] data = 3
    [SCV] data = 2
    [SCV] data = 3
    [SCV] data = 0
    [SCV] data = 4
    [SCV] data = 7
    [SCV] data = 0
    [SCV] data = 9
    [SCV] data = 4
    [SCV] data = 20
    [SCV] data = 1
    [SCV] data = 1
    [SCV] data = 3
    [SCV] data = 0
    [SCV] data = 9
    [SCV] data = 2
    [SCV] data = 0
    [SCV] data = 8
    [SCV] data = 0
    [SCV] data = 0
    [SCV] data = 7
    [SCV] data = 9
    [SCV] data = 3
    [SCV] data = 7
    [SCV] data = 3
    [SCV] data = 14
    [SCV] data = 3
    

実際の結果は。。。

発生数 割合
0-4 27 54%
5-9 12 24%
10-14 6 12%
15-19 4 8%
20-24 1 2%

ふむ。こんなものかも。

関連記事

コメントの投稿

非公開コメント

プロフィール

Kocha

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

カレンダー
04 | 2017/05 | 06
- 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
アクセス人数
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。