亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? utilities.c

?? 蟻群算法的程序
?? C
字號:
/*       AAAA    CCCC   OOOO   TTTTTT   SSSSS  PPPPP      AA  AA  CC     OO  OO    TT    SS      PP  PP      AAAAAA  CC     OO  OO    TT     SSSS   PPPPP      AA  AA  CC     OO  OO    TT        SS  PP      AA  AA   CCCC   OOOO     TT    SSSSS   PP################################################################    ACO algorithms for the TSP    ################################################################      Version: 1.0      File:    utilities.c      Author:  Thomas Stuetzle      Purpose: some additional useful procedures      Check:   README and gpl.txt      Copyright (C) 2002  Thomas Stuetzle*//***************************************************************************    Program's name: acotsp    Ant Colony Optimization algorithms (AS, ACS, EAS, RAS, MMAS, BWAS) for the     symmetric TSP     Copyright (C) 2004  Thomas Stuetzle    This program is free software; you can redistribute it and/or modify    it under the terms of the GNU General Public License as published by    the Free Software Foundation; either version 2 of the License, or    (at your option) any later version.    This program is distributed in the hope that it will be useful,    but WITHOUT ANY WARRANTY; without even the implied warranty of    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the    GNU General Public License for more details.    You should have received a copy of the GNU General Public License    along with this program; if not, write to the Free Software    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA    email: stuetzle no@spam informatik.tu-darmstadt.de    mail address: Universitaet Darmstadt                  Fachbereich Informatik                  Hochschulstr. 10                  D-64283 Darmstadt		  Germany***************************************************************************/#include <stdio.h>#include <stdlib.h>#include <math.h>#include <time.h>#include "InOut.h"#include "utilities.h"#include "TSP.h"#include "ants.h"#include "timer.h"long int seed = 12345678;double mean( long int *values, long int max ) /*          FUNCTION:       compute the average value of an integer array of length max       INPUT:          pointer to array, length of array      OUTPUT:         average       (SIDE)EFFECTS:  none*/{  long int j;  double   m;  m = 0.;  for ( j = 0 ; j < max ; j++ ) {    m += (double)values[j];  }  m = m / (double)max;  return m;}double meanr( double *values, long int max ) /*          FUNCTION:       compute the average value of a floating number array of length max       INPUT:          pointer to array, length of array      OUTPUT:         average       (SIDE)EFFECTS:  none*/{  long int j;  double   m;  m = 0.;  for ( j = 0 ; j < max ; j++ ) {    m += values[j];  }  m = m / (double)max;  return m;}double std_deviation( long int *values, long int max, double mean ) /*          FUNCTION:       compute the standard deviation of an integer array        INPUT:          pointer to array, length of array, mean       OUTPUT:         standard deviation      (SIDE)EFFECTS:  none*/{  long int j;  double   dev = 0.;  if (max <= 1)    return 0.;  for ( j = 0 ; j < max; j++ ) {    dev += ((double)values[j] - mean) * ((double)values[j] - mean);  }  return sqrt(dev/(double)(max - 1));}double std_deviationr( double *values, long int max, double mean ) /*          FUNCTION:       compute the standard deviation of a floating number array        INPUT:          pointer to array, length of array, mean       OUTPUT:         standard deviation      (SIDE)EFFECTS:  none*/{  long int j;  double   dev;  if (max <= 1)    return 0.;  dev = 0.;  for ( j = 0 ; j < max ; j++ ) {    dev += ((double)values[j] - mean) * ((double)values[j] - mean);  }  return sqrt(dev/(double)(max - 1));}long int best_of_vector( long int *values, long int l ) /*          FUNCTION:       return the minimum value in an integer value        INPUT:          pointer to array, length of array      OUTPUT:         smallest number in the array      (SIDE)EFFECTS:  none*/{  long int min, k;  k = 0;  min = values[k];  for( k = 1 ; k < l ; k++ ) {    if( values[k] < min ) {      min = values[k];    }  }  return min;}long int worst_of_vector( long int *values, long int l ) /*          FUNCTION:       return the maximum value in an integer value        INPUT:          pointer to array, length of array      OUTPUT:         largest number in the array      (SIDE)EFFECTS:  none*/{  long int max, k;  k = 0;  max = values[k];  for( k = 1 ; k < l ; k++ ) {    if( values[k] > max ){      max = values[k];    }  }  return max;}double quantil(long int v[], double q, long int l)/*          FUNCTION:       return the q-quantil of an ordered integer array        INPUT:          one array, desired quantil q, length of array      OUTPUT:         q-quantil of array      (SIDE)EFFECTS:  none*/{  long int i,j;  double tmp;  tmp = q * (double)l;  if ((double)((long int)tmp) == tmp) {      i = (long int)tmp;    j = (long int)(tmp + 1.);    return ((double)v[i-1] + (double)v[j-1]) / 2.;  } else {    i = (long int)(tmp +1.);    return v[i-1];  }}void swap(long int v[], long int i, long int j)/*          FUNCTION:       auxiliary routine for sorting an integer array        INPUT:          array, two indices      OUTPUT:         none      (SIDE)EFFECTS:  elements at position i and j of array are swapped*/{  long int tmp;  tmp = v[i];  v[i] = v[j];  v[j] = tmp;}void sort(long int v[], long int left, long int right)/*          FUNCTION:       recursive routine (quicksort) for sorting an array        INPUT:          one array, two indices      OUTPUT:         none      (SIDE)EFFECTS:  elements at position i and j of the two arrays are swapped*/{  long int k, last;  if (left >= right)     return;  swap(v, left, (left + right)/2);  last = left;  for (k=left+1; k <= right; k++)    if (v[k] < v[left])      swap(v, ++last, k);  swap(v, left, last);  sort(v, left, last);  sort(v, last+1, right);}void swap2(long int v[], long int v2[], long int i, long int j)/*          FUNCTION:       auxiliary routine for sorting an integer array        INPUT:          two arraya, two indices      OUTPUT:         none      (SIDE)EFFECTS:  elements at position i and j of the two arrays are swapped*/{  long int tmp;  tmp = v[i];  v[i] = v[j];  v[j] = tmp;  tmp = v2[i];  v2[i] = v2[j];  v2[j] = tmp;}void sort2(long int v[], long int v2[], long int left, long int right)/*          FUNCTION:       recursive routine (quicksort) for sorting one array; second                       arrays does the same sequence of swaps        INPUT:          two arrays, two indices      OUTPUT:         none      (SIDE)EFFECTS:  elements at position i and j of the two arrays are swapped*/{  long int k, last;  if (left >= right)     return;  swap2(v, v2, left, (left + right)/2);  last = left;  for (k=left+1; k <= right; k++)    if (v[k] < v[left])      swap2(v, v2, ++last, k);  swap2(v, v2, left, last);  sort2(v, v2, left, last);  sort2(v, v2, last+1, right);}double ran01( long *idum )/*          FUNCTION:       generate a random number that is uniformly distributed in [0,1]      INPUT:          pointer to variable with the current seed      OUTPUT:         random number uniformly distributed in [0,1]      (SIDE)EFFECTS:  random number seed is modified (important, this has to be done!)      ORIGIN:         numerical recipes in C*/{  long k;  double ans;  k =(*idum)/IQ;  *idum = IA * (*idum - k * IQ) - IR * k;  if (*idum < 0 ) *idum += IM;  ans = AM * (*idum);  return ans;}long int random_number( long *idum )/*          FUNCTION:       generate an integer random number      INPUT:          pointer to variable containing random number seed      OUTPUT:         integer random number uniformly distributed in {0,2147483647}      (SIDE)EFFECTS:  random number seed is modified (important, has to be done!)      ORIGIN:         numerical recipes in C*/{  long k;  k =(*idum)/IQ;  *idum = IA * (*idum - k * IQ) - IR * k;  if (*idum < 0 ) *idum += IM;  return *idum;}long int ** generate_int_matrix( long int n, long int m)/*          FUNCTION:       malloc a matrix and return pointer to it      INPUT:          size of matrix as n x m       OUTPUT:         pointer to matrix      (SIDE)EFFECTS:  */{  long int i;  long int **matrix;  if((matrix = malloc(sizeof(long int) * n * m +		      sizeof(long int *) * n	 )) == NULL){    printf("Out of memory, exit.");    exit(1);  }  for ( i = 0 ; i < n ; i++ ) {    matrix[i] = (long int *)(matrix + n) + i*m;  }  return matrix;}double ** generate_double_matrix( long int n, long int m)/*          FUNCTION:       malloc a matrix and return pointer to it      INPUT:          size of matrix as n x m       OUTPUT:         pointer to matrix      (SIDE)EFFECTS:  */{  long int i;  double **matrix;  if((matrix = malloc(sizeof(double) * n * m +		      sizeof(double *) * n	 )) == NULL){    printf("Out of memory, exit.");    exit(1);  }  for ( i = 0 ; i < n ; i++ ) {    matrix[i] = (double *)(matrix + n) + i*m;  }  return matrix;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产乱子轮精品视频| 欧美日韩你懂得| 欧美不卡在线视频| 国产精品亚洲一区二区三区妖精 | 91精品国产综合久久精品性色| 日韩高清一区在线| 国产亚洲一区二区在线观看| 色综合咪咪久久| 免费成人性网站| 亚洲欧美偷拍卡通变态| 日韩欧美一卡二卡| 色狠狠av一区二区三区| 国产一区二区三区免费| 国产精品资源站在线| 国产乱码精品一区二区三| 成人性视频免费网站| 免费一级欧美片在线观看| 久久电影国产免费久久电影 | 99re成人精品视频| 日韩电影免费在线看| 捆绑调教一区二区三区| 国产精品18久久久久久vr| 亚洲资源中文字幕| 亚洲欧洲在线观看av| 精品裸体舞一区二区三区| 久久嫩草精品久久久精品一| 日韩欧美专区在线| 欧美日韩高清一区二区三区| 色欧美片视频在线观看 | 在线91免费看| 国产亚洲一区二区在线观看| 亚洲欧洲韩国日本视频| 五月婷婷欧美视频| 亚洲国产精品影院| 一区二区三区av电影| 国产精品久久久久久久久免费樱桃| 欧美不卡一区二区三区四区| 亚洲国产精华液网站w| 欧美精品一区二区三区在线| 日韩亚洲欧美中文三级| 久久久91精品国产一区二区精品| 一区二区三区在线视频播放| 免费看日韩a级影片| 99r国产精品| 欧美电影免费观看高清完整版在 | 一区二区三区四区在线| 蜜臀91精品一区二区三区| 婷婷开心激情综合| 国产91精品精华液一区二区三区 | 成人av网站在线| 国产成人综合自拍| 欧美日本在线观看| 国产精品久久久久四虎| 久久久久久久综合| 精品福利一二区| 久久精品视频在线看| 亚洲免费观看高清完整版在线观看熊 | 色综合久久久久综合体桃花网| 制服丝袜一区二区三区| 亚洲黄网站在线观看| 亚洲日本在线观看| 亚洲 欧美综合在线网络| 丝袜a∨在线一区二区三区不卡| 亚洲国产精品尤物yw在线观看| 成人永久看片免费视频天堂| 精品少妇一区二区三区日产乱码 | 日韩一区二区三区四区| 夜夜嗨av一区二区三区中文字幕| 国产精品1024| 国产亚洲制服色| 国产一区二区三区电影在线观看 | 久久久久久麻豆| 国产一区二区三区国产| 精品国产网站在线观看| 久久99久久久欧美国产| 欧美精品自拍偷拍| 国产日本欧洲亚洲| 亚洲一区二区三区中文字幕| 99久久精品免费看| 亚洲欧美国产三级| 欧美日韩一区二区三区在线看| 亚洲乱码国产乱码精品精小说 | 亚洲免费av观看| 北岛玲一区二区三区四区| 欧美另类高清zo欧美| 亚洲电影一区二区三区| 欧美精品vⅰdeose4hd| 三级一区在线视频先锋| 欧美一区二区三区四区视频| 中文字幕中文字幕一区二区| av电影在线不卡| 最好看的中文字幕久久| 91捆绑美女网站| 国产免费成人在线视频| 风流少妇一区二区| 亚洲乱码精品一二三四区日韩在线| 91在线观看视频| 亚洲成a人片在线不卡一二三区| 3atv一区二区三区| 国产米奇在线777精品观看| 国产片一区二区三区| 91麻豆免费观看| 丝袜美腿亚洲综合| 精品国产乱子伦一区| 97精品久久久午夜一区二区三区| 亚洲动漫第一页| 久久伊人蜜桃av一区二区| 蜜桃在线一区二区三区| 久久久国产精品不卡| 色偷偷久久一区二区三区| 日韩成人精品在线观看| 亚洲国产激情av| 欧美肥妇毛茸茸| jvid福利写真一区二区三区| 日本午夜一区二区| 国产精品护士白丝一区av| 制服丝袜成人动漫| 成人h动漫精品| 五月婷婷激情综合| 亚洲天堂精品视频| 精品国产99国产精品| 在线观看国产日韩| 丝袜美腿亚洲色图| 国产精品久久久久桃色tv| 欧美一级欧美一级在线播放| gogo大胆日本视频一区| 久久精品国产一区二区| 亚洲一区二区三区四区中文字幕| 久久精品夜色噜噜亚洲aⅴ| 欧美老年两性高潮| 色偷偷成人一区二区三区91| 国产在线精品免费| 偷拍日韩校园综合在线| **欧美大码日韩| 欧美激情资源网| 精品免费国产二区三区| 欧美精品777| 欧美羞羞免费网站| 蜜桃av一区二区| 亚洲一区二区美女| 亚洲精品视频免费看| 国产日韩一级二级三级| 欧美videossexotv100| 91精品国产综合久久久久久| 欧美日韩一区二区电影| 91在线国产福利| 91女厕偷拍女厕偷拍高清| 盗摄精品av一区二区三区| 韩国毛片一区二区三区| 一二三区精品福利视频| 亚洲三级免费观看| 亚洲色图视频网站| 亚洲精品免费在线| 亚洲日本免费电影| 亚洲色图在线看| 一区二区久久久久久| 一区二区三区四区高清精品免费观看 | 在线这里只有精品| 色乱码一区二区三区88| 日本韩国欧美一区| 欧美日韩综合一区| 91麻豆精品久久久久蜜臀| 欧美日韩国产在线播放网站| 欧美视频一区二区三区四区 | 国产.精品.日韩.另类.中文.在线.播放| 青青草国产精品97视觉盛宴| 免费av网站大全久久| 韩国av一区二区三区四区| 丁香桃色午夜亚洲一区二区三区| 成人午夜视频在线观看| 91老师片黄在线观看| 欧美日韩国产区一| 久久综合九色综合欧美就去吻| 欧美激情在线观看视频免费| 亚洲免费av高清| 日韩精品亚洲一区二区三区免费| 久久99九九99精品| 五月激情综合婷婷| 黑人精品欧美一区二区蜜桃| 99精品桃花视频在线观看| 欧美色爱综合网| 精品国产一区久久| 亚洲欧美在线视频观看| 午夜视频在线观看一区二区三区| 激情文学综合网| 色哟哟在线观看一区二区三区| 欧美四级电影网| 国产夜色精品一区二区av| 亚洲精品乱码久久久久久黑人| 日韩黄色免费网站| 成人av午夜影院| 日韩精品一区二区在线| 国产精品国产三级国产| 日本不卡一区二区三区| 国产91精品精华液一区二区三区| 欧美日韩一区二区三区视频| 国产欧美日韩亚州综合| 午夜精品久久久| 色女孩综合影院| 337p日本欧洲亚洲大胆色噜噜|