![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
現在、C言語でスケールフリーネットワーク(BAモデル)を作成しているのですが、理論はわかるのですが、プログラムが不得意でどのように作っていったらいいのかわかりません。
現在作成途中のソース。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#define MAXDEG 500
#define N 30000 //ノードの数
typedef struct node{
int deg;
int adj[MAXDEG];//adjacent隣接
double prob;//確率
} Node;
/*プロトタイプ宣言*/
add_edge(int id1,int id2);
Node NODES[N];
int main(){
ここがどうしていいかわかりません。
}
add_edge(int id1,int id2){
Node *node1,*node2;
node1 = &NODES[id1];
node2 = &NODES[id2];
node1->adj[node1->deg]=id2;
(node1->deg)++;
node2->adj[node1->deg]=id1;
(node2->deg)++;
if(node1->deg >= MAXDEG-1 || node2->deg > MAXDEG-2){
printf("DEG overflow\n");
exit(0);
}
関数はこれを使おうと思っていますが、プロセスがわかりません。
よろしくお願いします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
int main(){
for(int i = 0; i < N; i++){
int j = select_node(i);
add_edge(i, j);
}
}
//iが接続するべきノードを返す関数
int select_node(int i){
//i番目のノードが接続する既存ノードを選択(=j)
return j;
}
ようするに,i番目のノードをj=「0~(i-1)番目のノードのうち一つ」と接続させればいいんじゃないでしょうか.
このとき,jはdegが大きいものほど選ばれやすいように工夫してください.
回答ありがとうございました。
回答を参考にして、ノード選択の部分をがんばって考えて、やってみようと思います。
ノードの選択が、スケールフリーの特徴なので、なんとかやってみます。
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_04.png?8acaa2e)
No.1
- 回答日時:
せめて、その「理論」や「プロセス」の理解している範囲が、普通の言葉であっても書かれていたら、もしかしたら、回答があるかもしれません。
ここでわかるのは、i と j のノードが、 add_edge(i, j); で接続できるところくらいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 大学・短大 C言語線形リストの問題です 3 2022/12/22 00:45
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- 工学 永久機関を磁石で作れませんか?ずっと引き寄せる力があると思うのですが何かに利用できないのでしょうか? 2 2022/06/19 08:23
- その他(自然科学) 永久機関を磁石で作れませんか?ずっと引き寄せる力があると思うのですが何かに利用できないのでしょうか? 3 2022/06/22 10:57
- C言語・C++・C# 並列プログラミングのπ計算について 1 2022/07/16 22:30
- Android(アンドロイド) Team microSDXCカード 256GB この製品は有名で性能は良いものでしょうか 5 2022/09/24 23:25
- C言語・C++・C# C 言語の Gauss Jordan 法について 2 2022/12/28 11:16
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CPUの考え方を教えてください ...
-
SNMP リンクダウンとノードダ...
-
ルート要素ノードが2個ある場合?
-
TreeView の初期表示について
-
2分探索木の高さを求めるプロ...
-
同じタグ名の項目取得
-
XML::LibXMLのfindnodes()で、...
-
VB2005 TreeViewの任意ノード選択
-
C++における並列処理に関する質...
-
ツリービューのノードをダブル...
-
(VB.NET)TreeViewのノード文...
-
昔Winnyってありましたけど、あ...
-
C# TreeViewのノードの判定
-
C#でtreeviewの指定ノードを選...
-
あるノードリストに、特定の名...
-
vbsのDOMDocumentで要素のText...
-
TreeVIewのノード名を編集する...
-
XMLで特定の兄弟のノードの数を...
-
線形リストに挿入するプログラム
-
UTF-8でエンコーディングとはど...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CPUの考え方を教えてください ...
-
昔Winnyってありましたけど、あ...
-
SNMP リンクダウンとノードダ...
-
ルート要素ノードが2個ある場合?
-
あるノードリストに、特定の名...
-
同じタグ名の項目取得
-
コンテキストメニュークリック...
-
ノードとは
-
XML文書の指定した属性値を持つ...
-
ツリービューのノードをダブル...
-
2分探索木の高さを求めるプロ...
-
C# TreeView 効率良いノード追...
-
スケールフリーネットワークをC...
-
複数のマックPCによる数値計算...
-
C#でtreeviewの指定ノードを選...
-
VB6.0でDOMを使用して...
-
TreeViewに重複する値をセット
-
ツリービューの使い方が・・・
-
TreeViewの再表示のちらつきを...
-
各ノードの行数取得
おすすめ情報