Tillbaka till svenska Fidonet
English   Information   Debug  
ECHOLIST   0/18295
EC_SUPPORT   0/318
ELECTRONICS   0/359
ELEKTRONIK.GER   1534
ENET.LINGUISTIC   0/13
ENET.POLITICS   0/4
ENET.SOFT   0/11701
ENET.SYSOP   33903
ENET.TALKS   0/32
ENGLISH_TUTOR   0/2000
EVOLUTION   0/1335
FDECHO   0/217
FDN_ANNOUNCE   0/7068
FIDONEWS   24125
FIDONEWS_OLD1   0/49742
FIDONEWS_OLD2   0/35949
FIDONEWS_OLD3   0/30874
FIDONEWS_OLD4   0/37224
FIDO_SYSOP   12852
FIDO_UTIL   0/180
FILEFIND   0/209
FILEGATE   0/212
FILM   0/18
FNEWS_PUBLISH   4408
FN_SYSOP   41678
FN_SYSOP_OLD1   71952
FTP_FIDO   0/2
FTSC_PUBLIC   0/13599
FUNNY   0/4886
GENEALOGY.EUR   0/71
GET_INFO   105
GOLDED   0/408
HAM   0/16070
HOLYSMOKE   0/6791
HOT_SITES   0/1
HTMLEDIT   0/71
HUB203   466
HUB_100   264
HUB_400   39
HUMOR   0/29
IC   0/2851
INTERNET   0/424
INTERUSER   0/3
IP_CONNECT   719
JAMNNTPD   0/233
JAMTLAND   0/47
KATTY_KORNER   0/41
LAN   0/16
LINUX-USER   0/19
LINUXHELP   0/1155
LINUX   0/22092
LINUX_BBS   0/957
mail   18.68
mail_fore_ok   249
MENSA   0/341
MODERATOR   0/102
MONTE   0/992
MOSCOW_OKLAHOMA   0/1245
MUFFIN   0/783
MUSIC   0/321
N203_STAT   926
N203_SYSCHAT   313
NET203   321
NET204   69
NET_DEV   0/10
NORD.ADMIN   0/101
NORD.CHAT   0/2572
NORD.FIDONET   189
NORD.HARDWARE   0/28
NORD.KULTUR   0/114
NORD.PROG   0/32
NORD.SOFTWARE   0/88
NORD.TEKNIK   0/58
NORD   0/453
OCCULT_CHAT   0/93
OS2BBS   0/787
OS2DOSBBS   0/580
OS2HW   0/42
OS2INET   0/37
OS2LAN   0/134
OS2PROG   0/36
OS2REXX   0/113
OS2USER-L   207
OS2   0/4786
OSDEBATE   0/18996
PASCAL   0/490
PERL   0/457
PHP   0/45
POINTS   0/405
POLITICS   0/29554
POL_INC   0/14731
PSION   103
R20_ADMIN   1121
R20_AMATORRADIO   0/2
R20_BEST_OF_FIDONET   13
R20_CHAT   0/893
R20_DEPP   0/3
R20_DEV   399
R20_ECHO2   1379
R20_ECHOPRES   0/35
R20_ESTAT   0/719
R20_FIDONETPROG...
...RAM.MYPOINT
  0/2
R20_FIDONETPROGRAM   0/22
R20_FIDONET   0/248
R20_FILEFIND   0/24
R20_FILEFOUND   0/22
R20_HIFI   0/3
R20_INFO2   3218
R20_INTERNET   0/12940
R20_INTRESSE   0/60
R20_INTR_KOM   0/99
R20_KANDIDAT.CHAT   42
R20_KANDIDAT   28
R20_KOM_DEV   112
R20_KONTROLL   0/13270
R20_KORSET   0/18
R20_LOKALTRAFIK   0/24
R20_MODERATOR   0/1852
R20_NC   76
R20_NET200   245
R20_NETWORK.OTH...
...ERNETS
  0/13
R20_OPERATIVSYS...
...TEM.LINUX
  0/44
R20_PROGRAMVAROR   0/1
R20_REC2NEC   534
R20_SFOSM   0/340
R20_SF   0/108
R20_SPRAK.ENGLISH   0/1
R20_SQUISH   107
R20_TEST   2
R20_WORST_OF_FIDONET   12
RAR   0/9
RA_MULTI   106
RA_UTIL   0/162
REGCON.EUR   0/2056
REGCON   0/13
SCIENCE   0/1206
SF   0/239
SHAREWARE_SUPPORT   0/5146
SHAREWRE   0/14
SIMPSONS   0/169
STATS_OLD1   0/2539.065
STATS_OLD2   0/2530
STATS_OLD3   0/2395.095
STATS_OLD4   0/1692.25
SURVIVOR   0/495
SYSOPS_CORNER   0/3
SYSOP   0/84
TAGLINES   0/112
TEAMOS2   0/4530
TECH   0/2617
TEST.444   0/105
TRAPDOOR   0/19
TREK   0/755
TUB   0/290
UFO   0/40
UNIX   0/1316
USA_EURLINK   0/102
USR_MODEMS   0/1
VATICAN   0/2740
VIETNAM_VETS   0/14
VIRUS   0/378
VIRUS_INFO   0/201
VISUAL_BASIC   0/473
WHITEHOUSE   0/5187
WIN2000   0/101
WIN32   0/30
WIN95   0/4288
WIN95_OLD1   0/70272
WINDOWS   0/1517
WWB_SYSOP   0/419
WWB_TECH   0/810
ZCC-PUBLIC   0/1
ZEC   4

 
4DOS   0/134
ABORTION   0/7
ALASKA_CHAT   0/506
ALLFIX_FILE   0/1313
ALLFIX_FILE_OLD1   0/7997
ALT_DOS   0/152
AMATEUR_RADIO   0/1039
AMIGASALE   0/14
AMIGA   0/331
AMIGA_INT   0/1
AMIGA_PROG   0/20
AMIGA_SYSOP   0/26
ANIME   0/15
ARGUS   0/924
ASCII_ART   0/340
ASIAN_LINK   0/651
ASTRONOMY   0/417
AUDIO   0/92
AUTOMOBILE_RACING   0/105
BABYLON5   0/17862
BAG   135
BATPOWER   0/361
BBBS.ENGLISH   0/382
BBSLAW   0/109
BBS_ADS   0/5290
BBS_INTERNET   0/507
BIBLE   0/3563
BINKD   0/1119
BINKLEY   0/215
BLUEWAVE   0/2173
CABLE_MODEMS   0/25
CBM   0/46
CDRECORD   0/66
CDROM   0/20
CLASSIC_COMPUTER   0/378
COMICS   0/15
CONSPRCY   0/899
COOKING   32896
COOKING_OLD1   0/24719
COOKING_OLD2   0/40862
COOKING_OLD3   0/37489
COOKING_OLD4   0/35496
COOKING_OLD5   9370
C_ECHO   0/189
C_PLUSPLUS   0/31
DIRTY_DOZEN   0/201
DOORGAMES   0/2056
DOS_INTERNET   0/196
duplikat   6002
Möte EVOLUTION, 1335 texter
 lista första sista föregående nästa
Text 698, 176 rader
Skriven 2004-11-07 21:59:00 av Malcolm (1:278/230)
Ärende: Re: Tongues, curling into
=================================



"Brett Aubrey" <brett.aubrey@shaw.ca> wrote
>
> In Richard Dawkin's The Ancestor's Tale, he mentions the 50/50 split on
> Humanity's ability to curl our tongue into a tube.  Might there have been
a
> reason for this trait, or its' absense?  Or is this just likely an example
> of a minor mutation that is advantageously neutral?  Or something else?
TIA
> Regards, Brett Aubrey.
>
When you do the sums, you will see that a trait with an adaptive advantage
too small to meaure can have a huge influence. (Try this)

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

void usage(void);
void mousegrow(double advantage, double sd, int gens);
void jitter(double *x, int N, double sd);
void renormalise(double *x, int N, double sd);
double mean(double *x, int N);
double gaussrand();
double uniform(void);

int main(int argc, char **argv)
{
  if(argc != 4)
    usage();

  mousegrow( atof(argv[1]), atof(argv[2]), atoi(argv[3]) );

  return 0;
}

void usage(void)
{
  printf("Mousegrow, evolution demonstration\n");
  printf("Usage: mousegrow <advantage> <stddev> <gens>\n");
  printf("advantage - the advantage of being in the top half"
    "of the distribution (eg 0.001) \n");
  printf("jitter - the jitter factor(eg 0.01)\n");
  printf("gens - number of generations to run the simulation\n");
  printf("\nMonte Carlo simulation with an asexual population of 1000\n");

  exit(0);
}


/*
  run the simulation
*/
void mousegrow(double advantage, double sd, int gens)
{
  int i;
  int ii;
  double *pop;
  double xbar;
  int target;

  pop = malloc(1000 * sizeof(double));

  // popuate with random men 5
  for(i=0;i<1000;i++)
    pop[i] = 5.0 + gaussrand();

  // main loop
  for(i=0;i<gens;i++)
  {

 // take the mean, and add moise
 xbar = mean(pop, 1000);
    jitter(pop, 1000, sd * xbar/5.0);


 printf("Gen %d mean size %g\n", i, xbar);
 for(ii=0;ii<1000;ii++)
 {
   // if we are above average, we have a 0.5 chance of reproducing
   if(pop[ii] > xbar)
   {
     if( uniform() < 0.5 )
  {
    // just replace a random individual with a copy of yourself
    target = rand() % 1000;
    pop[target] = pop[ii];
  }
   }
   // if we are below, the chance drops to 0.5 - s
   else
   {
     if(uniform() < 0.5 - advantage)
  {
    target = rand() % 1000;
    pop[target] = pop[ii];
  }
   }
 }
  }

  free(pop);
}


/*
  add a bit of evolutionary noise to the population
  (models mutations)
*/
void jitter(double *x, int N, double sd)
{
  int i;

  for(i=0;i<N;i++)
 x[i] += gaussrand() * sd;
}


/*
  average
*/
double mean(double *x, int N)
{
  double answer = 0;
  int i;

  for(i=0;i<N;i++)
 answer += x[i];

  return answer / N;
}

/*
  random number with a normal distribution
*/
double gaussrand()
{
  static double V1, V2, S;
  static int phase = 0;
  double X;

  if(phase == 0)
  {
    do {
        double U1 = (double)rand() / RAND_MAX;
        double U2 = (double)rand() / RAND_MAX;

        V1 = 2 * U1 - 1;
        V2 = 2 * U2 - 1;
        S = V1 * V1 + V2 * V2;
 } while(S >= 1 || S == 0);
     X = V1 * sqrt(-2 * log(S) / S);
  }
  else
    X = V2 * sqrt(-2 * log(S) / S);

  phase = 1 - phase;
  return X;
}

/*
  random number on the interval 0-1
*/
double uniform(void)
{
  return rand() / (RAND_MAX + 1.0);
}
---
ū RIMEGate(tm)/RGXPost V1.14 at BBSWORLD * Info@bbsworld.com

---
 * RIMEGate(tm)V10.2á˙* RelayNet(tm) NNTP Gateway * MoonDog BBS
 * RgateImp.MoonDog.BBS at 11/7/04 9:59:05 PM
 * Origin: MoonDog BBS, Brooklyn,NY, 718 692-2498, 1:278/230 (1:278/230)