Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

It'd be thrilling to watch if evolution invents cryptographically signed DNA to prevent malicious viruses, plasmids and what not from using cell's reproduction machinery.


To an extent, engineered bacteria do this already. Though E coli are quite tolerant, I've known instances when they reject foreign DNA that you're trying to get into them (eg to express a protein).


I was confused by your comment for a moment. Then I realized that you probably don't know that there already exist natural viruses which hijack bacteria by injecting their own DNA.

Wherever you find bacteria, you also find these bacteriophages. They co-evolve with their host in a never-ending arms race of defenses and counters. No asymmetric crypto though :-)

http://en.wikipedia.org/wiki/Bacteriophage


And way up there on the creepy/cool scale there are viruses that incorporate themselves into the DNA that is passed from generation to generation:

http://en.wikipedia.org/wiki/Endogenous_retrovirus


> It'd be thrilling to watch if evolution invents cryptographically signed DNA to prevent malicious viruses, plasmids and what not from using cell's reproduction machinery.

Here's an example from nature in which evolution came up with an encryption strategy to evade predators. It even uses prime numbers:

http://arachnoid.com/prime_numbers/index.html#Mathematical_L...


The cicada simulation on that page is very misleading. You're only seeing prime numbers because you arbitrarily synchronized the cycles of the cicada and the predators at t=0. If you had chosen another starting point at t=0 then you would see that years with many prime factors do better because then the predators consistently miss the cicada cycle. From somebody who criticizes psychology for wrong methodology I'd not have expected a simulation that's nothing more than confirmation bias ;-)


> The cicada simulation on that page is very misleading.

Not at all.

> You're only seeing prime numbers because you arbitrarily synchronized the cycles of the cicada and the predators at t=0.

Not true. Because of how the math works out, the starting time is irrelevant. Any arbitrary starting times for both the cicadas and predators yields the same outcome over time, because the filtering effect of prime reproductive cycles depends on synchronizing (or not synchronizing) random reproductive periods, not starting points.

Just so you won't think this is all rhetoric, and to do your homework for you, here's a short Python program that accepts any starting value and produces the same result regardless of the chosen starting point:

https://www.dropbox.com/s/7m8hq9yzcu5nztx/prime_reproduction...

Here is a typical output (the output changes in small ways with the chosen starting number, but always favors primes over composites):

     2 =   6901 *********************
     3 =   6395 *******************
     4 =   9036 ****************************
     5 =   5836 ******************
     6 =  11030 **********************************
     7 =   5468 *****************
     8 =  10410 ********************************
     9 =   7643 ***********************
    10 =   9923 *******************************
    11 =   4987 ***************
    12 =  14110 ********************************************
    13 =   4810 ***************
    14 =   9199 ****************************
    15 =   8988 ****************************
    16 =  11051 **********************************
    17 =   4528 **************
    18 =  12797 ***************************************
    19 =   4414 *************
    20 =  12469 **************************************
    21 =   8273 *************************
    22 =   8251 *************************
    23 =   4219 *************


> If you had chosen another starting point at t=0 ...

See above. You're mistaken. If you had tested your idea using actual mathematics, you would have realized your mistake before posting. But this would require a respect for validating one's ideas before posting them.

The effect being described counts only synchronization events between two reproductive cycles A and B over a long period of time. In this case, a given prime number A is compared to any number of values for B, and the number of synchronizations is totaled. As it happens, and regardless of the starting times, when a prime number in A is compared to a large range of values in B, and not surprisingly, the number of synchronizations is smallest if A is prime.

Another way of saying this is that a prime number has fewer factors than a composite number, hardly a controversial claim, and one that doesn't depend on the starting values for the counters.

> From somebody who criticizes psychology for wrong methodology ...

Ah, yes, the real reason for your post. I have never criticized psychology for "wrong methodology" anywhere. I criticize the field for not being scientific, as does the sitting director of the NIMH and many, many others. Today's example:

Title: "Final Report: Stapel Affair Points to Bigger Problems in Social Psychology"

Source: http://news.sciencemag.org/scienceinsider/2012/11/final-repo...

Quote: "In their exhaustive final report about the fraud affair that rocked social psychology last year, three investigative panels today collectively find fault with the field itself. They paint an image of a "sloppy" research culture in which some scientists don't understand the essentials of statistics, journal-selected article reviewers encourage researchers to leave unwelcome data out of their papers, and even the most prestigious journals print results that are obviously too good to be true.

The commissions—one for each of the universities where Stapel has worked—concluded that "from the bottom to the top there was a general neglect of fundamental scientific standards and methodological requirements." That climate made it possible for Stapel's fraud to go undetected for many years, the report says."

Somehow people like you think psychology's problems would go away if its critics would simply shut up. But this confuses the messenger with the message.


Sorry, but you're wrong. Even though it's fairly intuitively obvious, you can never trust intuition so I had tested it before I posted that. Change the line

    // are cicadas and predators both present at once?
    if ((y % py == 0) && (y % cy == 0)) {
to

    // are cicadas and predators both present at once?
    if ((y % py == 0) && ((y+1) % cy == 0)) {
or any other number than +1 to change the initial offset between the cicada and predator cycles, and you'll see that what I said is true.

> Ah, yes, the real reason for your post.

Not really, I in fact agree with (most of) what you say about psychology. This example just goes to show that one has to be careful with non-rigorous arguments (something that psychology is full of).


> if ((y % py == 0) && ((y+1) % cy == 0))

Wait, hold on. The problem is not with the theory, it's with your code. You're requiring a match between two values n and n+1 at once. That undermines the basic idea. To make your code work and imitate nature, you would need to take separate sums for n and n+1, not together as in your example, just as though there were two organisms, each trying to match up with the cicada's reproductive cycle. BTW my Python program sums values with an arbitrary change of starting point, but separately. Your code above has an obvious bug.

> you'll see that what I said is true.

Read my edited post with the Python program -- the starting point is irrelevant.

> Not really, I in fact agree with (most of) what you say about psychology.

Well, I certainly got that wrong. I assumed without evidence that you were one of those who bridles at the thought of someone criticizing psychology.


Your Python program is incomprehensible to me, probably due to the lack of meaningful variable names and double modulo:

    for a in range(2,22):
      total = 0
      for b in range(2,25):
        for c in range(1,1000):
          cc = c + start_value
          if(a % ((cc % b)+1) == 0):
            total += 1
In any case, my point was about the specific simulation on the web page you linked to. See above for my suggestion about how to change the starting offset in the original simulation, which clearly shows that the effect is reversed for different offsets.

Response to this edit:

> Wait, hold on. The problem is not with the theory, it's with your code. You're requiring a match between two values n and n+1 at once. That undermines the basic idea. To make your code work and imitate nature, you would need to take separate sums for n and n+1, not together as in your example, just as though there were two organisms, each trying to match up with the cicada's reproductive cycle. BTW my Python program sums values with an arbitrary change of starting point, but separately. Your code above has an obvious bug.

I am just setting the starting offset (not the starting year as I think you are doing in the Python program) between the cicada and the predators to something other than zero. Lets assume as an example that the cicada cycle is 4 years and the predator cycle is 3 years. At simulation year 0, there can be a variety of situations: at this year the cicada are mating, the next year the cicada are mating, in 2 years the cicada are mating, or in 3 years the cicada are mating. The same goes for the predators: at simulation year 0, the predators are coming, or the next year the predators are coming, or in 2 years the predators are coming. A proper simulation would consider all these possibilities. Your simulation arbitrarily assumes that at simulation year 0 both the cicada are mating and the predators are coming, i.e. the offset between the cicada mating year and the predator arrival year is 0 at the start of the simulation. By increasing the cicada cycle year by a fixed number, I am changing this arbitrary assumption to a different number of years to show that this assumption has a large effect on the outcome of the simulation. So while the change is minimal and perhaps not the most readable way to introduce this offset, the change I made does not introduce a bug.

> Well, I certainly got that wrong. I assumed without evidence that you were one of those who bridles at the thought of someone criticizing psychology.

No, I even think the problem is more widespread than psychology alone (though in psychology it is particularly severe), having seen first hand and heard second hand how science is conducted in other areas (especially those close to psychology).


> Your Python program is incomprehensible to me, probably due to the lack of meaningful variable names

I agree with this criticism, so I replaced the program:

https://www.dropbox.com/s/7m8hq9yzcu5nztx/prime_reproduction...

> I am just setting the starting offset (not the starting year!) between the cicada and the predators to something other than zero.

But if you change the offset of the predator's cycle, you've changed nothing unless the total years of test is a very small number. This is an easy claim to verify using my Python program -- you can arbitrarily change the starting point for the predator reproductive cycle, or the year, or any number of combinations -- but it doesn't change the outcome. The reason is that what's being measured is the number of collisions between a particular predator reproductive cycle over time, and a valid result merits a long time (I usually use 1000 years). This fact prevents the starting point from influencing the outcome.

Also, since the basic test is to count how often the predators hatch out in synchrony with the cicadas for a given cicada cycle number, and since that requires using modulo arithmetic, it's not obvious how you could change the result by adding an offset to either the chosen predator reproductive cycle or the year (or both) -- especially since I test the survival value of each cicada cycle against a large range of predator cycles.

The basic idea is that the cicadas evolve toward prime-numbered reproductive cycles by being tested in an environment filled with predators that use any number of other cycles, so a fair test requires me to compare a given cicada cycle with all plausible predator cycles and sum the results. Because I'm summing results for all predator cycles, adding a bias value to the predator cycle doesn't really change anything. That was why I was so sure this idea wouldn't hold up, but I tested it anyway.

> No, I even think the problem is more widespread than psychology alone (though in psychology it is particularly severe), having seen first hand how science is conducted in other areas.

Of course I agree. My focusing on psychology is not because their "science" is better or worse than, say, sociology, only that psychologists have clinics and patients -- people who deserve treatment driven by science, not anecdote.

I apologize for my tone earlier. I've been receiving a lot of rather emotional defenses of psychology lately, including a valiant effort by psychologists and fans of psychology to delete my Wikipedia page (an effort that will eventually probably succeed).


> I agree with this criticism, so I replaced the program:

That makes more sense, but I still don't understand the expression

    a % ((cc % b)+1) == 0
If I change it to something that would make sense to me, I get vastly different results:

    for a in range(2,24):
      total = 0
      for b in range(1,30):
        for c in range(1,1000):
          cc = c + start_offset
          cicada_hatch = (cc % a == 0)
          predators_hatch = (cc % b == 0)
          if cicada_hatch and predators_hatch:
            total += 1
      print '    %2d = %6d %s' % (a,total, '*' * (total/320))
But now the fast cycles get large bars. What we want to know is how often the cicada mate vs how often they are eaten: (written overly verbosely to make sure it's readable)

    for a in range(2,24):
      total_cicada_hatchings = 0
      total_predator_feasts = 0
      for b in range(1,30):
        for c in range(1,1000):
          cc = c + start_offset
          cicada_hatch = (cc % a == 0)
          predators_hatch = (cc % b == 0)
          if cicada_hatch:
              total_cicada_hatchings += 1
          if cicada_hatch and predators_hatch:
            total_predator_feasts += 1
      efficiency = float(total_cicada_hatchings) / float(total_predator_feasts)
      print '    %2d = %6d %s' % (a,efficiency, '*' * int(efficiency * 5))
With this code indeed the prime numbers show up. But this code has the problem I described: both the predator cycle and the cicada cycle start synchronized. Here is the fix:

    initial_cicada_cycle_year = 1 # arbitrary number
    initial_predator_cycle_year = 0 # another arbitrary number

    for a in range(2,24):
      total_cicada_hatchings = 0
      total_predator_feasts = 0
      for b in range(1,30):
        # cicada_cycle_year will have a value in the range {0..a-1}
        cicada_cycle_year = initial_cicada_cycle_year % a
        # predator_cycle_year will have a value in the range  {0..b-1}
        predator_cycle_year = initial_predator_cycle_year % b
        for c in range(1,1000):
          cicada_hatch = cicada_cycle_year == 0
          predators_hatch = predator_cycle_year == 0
          if cicada_hatch:
              total_cicada_hatchings += 1
          if cicada_hatch and predators_hatch:
            total_predator_feasts += 1
          # move the cycle forward by 1 year
          cicada_cycle_year = (cicada_cycle_year + 1) % a
          predator_cycle_year = (predator_cycle_year + 1) % b
      efficiency = float(total_cicada_hatchings) / float(total_predator_feasts)
      print '    %2d = %6d %s' % (a,efficiency, '*' * int(efficiency * 5))
If you set initial_cicada_cycle_year equal to initial_predator_cycle_year then you'll get the prime numbers to show up. Otherwise you get something else.

> The reason is that what's being measured is the number of collisions between a particular predator reproductive cycle over time, and a valid result merits a long time (I usually use 1000 years). This fact prevents the starting point from influencing the outcome.

Suppose that the predator cycle is 3 and the cicada cycle is 3. Then if at year 0 the cycles coincide, they will in the future coincide every 3 years because you have this pattern:

    year       0123456789 ...
    cicada     X  X  X  X ...
    predator   X  X  X  X ...
If at the start year 0 the cycles do not coincide, they will never coincide in the future, no matter for how many years you run the simulation:

    year       0123456789 ...
    cicada     X  X  X  X ...
    predator     X  X  X  ...
So the starting offset between the cycles is highly important!

> including a valiant effort by psychologists and fans of psychology to delete my Wikipedia page (an effort that will eventually probably succeed)

Haha that is so funny...and sad. Also my apologies for the tone in my original post. The reference to psychology was unnecessary and mean..


> So the starting offset between the cycles is highly important!

You're missing something basic here. The program's starting point is irrelevant because it's modeling a natural continuous process, one that stretches out to infinity in the past and the future (sort of like an indefinite integral). So there isn't a "starting point" in nature, only in these models.

And, because I model all the predator cycles between 1 and 30 in order to get a single result for one experimental cicada cycle, and because I model 1000 years, I have eliminated the starting point from consideration.

In nature, some predators are born in year 1, some in year 2 and so forth. Some predators have a 2-year reproductive cycle, some 3, and so forth. Those two factors are independent, and one of them answers the objection you're making (the arbitrary starting point).

But to make sure we're on the same page, here's my latest algorithm:

https://www.dropbox.com/s/7m8hq9yzcu5nztx/prime_reproduction...

Note that I changed the basic algorithm to agree with that used in my Web page. It doesn't change the result, but it's perhaps easier to understand.

This version arbitrarily adds a random number 0 <= cr <= 99 to the starting year of the predator on each test, much like your original code except that my way of doing it "wraps around" within the period determined by variable b. This effort to randomize things doesn't change the result rankings -- primes always come out ahead (in the sense of fewer collisions between predators and cicadas).

Sample output:

     2 =     18 ******************
     3 =     18 ******************
     4 =     25 *************************
     5 =     16 ****************
     6 =     41 *****************************************
     7 =     18 ******************
     8 =     37 *************************************
     9 =     29 *****************************
    10 =     45 *********************************************
    11 =     20 ********************
    12 =     52 ****************************************************
    13 =     20 ********************
    14 =     33 *********************************
    15 =     33 *********************************
    16 =     38 **************************************
    17 =     19 *******************
    18 =     57 *********************************************************
    19 =     25 *************************
    20 =     56 ********************************************************
    21 =     32 ********************************
    22 =     37 *************************************
    23 =     21 *********************
The present form is just one of many variations I tried. I used random numbers to tweak various starting points, all with the same outcome -- primes are always favored. Because modulo arithmetic is being used, one needs to add random numbers carefully, with a clear understanding of their effect.


> So there isn't a "starting point" in nature, only in these models.

Exactly, that's my whole point. And your chosen simulation starting point highly influences the outcome of the simulation. The one you chose happened to give you the prime numbers, but another would give wildly different results.

> And, because I model all the predator cycles between 1 and 30 in order to get a single result for one experimental cicada cycle, and because I model 1000 years, I have eliminated the starting point from consideration.

Well, no, evidently not, but I don't feel like making this point once again, the posts above explain this sufficiently.

> But to make sure we're on the same page, here's my latest algorithm:

This algorithm is again unreadable and wrong: a % c == 0 and b % (((c+cr) % b)+1) == 0. Why is this doing a % c, i.e. the cicada cycle modulo the simulation year?? It SHOULD be doing it the other way around: the simulation year modulo the cicada cycle. Meaningful variable names help! The fix is simple: the expression should be c % a == 0 and (c+cr) % b == 0. (also already described in my previous post)

> This version arbitrarily adds a random number 0 <= cr <= 99 to the starting year of the predator on each test

That's the right idea (though wrong implementation -- see above).


> And your chosen simulation starting point highly influences the outcome of the simulation.

Yes, it does. The effect I am describing is real, and I simply haven't thought it through in detail until now.

1. The starting point for my simulation has both the cicadas and the predators hatching out simultaneously, in year zero. This obviously happens in nature as well as in my simulation (but only rarely).

2. Given that starting condition, what is the likelihood that the predator, with a range of reproduction cycles, will succeed in synchronizing with the cicadas again, or (the best of all worlds) over and over in perpetuity?

3. The answer is that, if the cicadas adopt a prime-numbered reproduction cycle, the predators are handicapped by the fact that a typical prime number has fewer divisors than a composite number, and divisors are required for synchronization:

http://en.wikipedia.org/wiki/Table_of_divisors

4. For cases in which the predators and the cicadas are out of synchronization, the outcome for a random difference in years is neutral -- not advantageous, not disadvantageous. I've shown this by adding a loop to my program that tests against a range of differences in years between cicadas and predators. When I do this, the difference between a prime and a composite nearly vanishes ("nearly" because the advantage of a prime numbered cycle is still present, but is almost completely buried by the much greater number of years where there's no advantage).

5. It is only when cicadas and predators hatch out in synchrony (for any one of a number of reasons) does this prime-number effect have any effect on the outcome.

6. In terms of natural selection, this leaves the prime-number effect, plus an initial synchronization between cicada and predator, as the only selection advantage, for which the prime-number effect works against the predators.

7. Nature, and natural selection, does something my simulation doesn't -- over time, by rewarding reproductive fitness, it amplifies the effect of small advantages, in some cases turning a chance, small fitness advantage into the entire population of a species in the future.

8. I could obviously write a more complex simulation that imitates natural selection, one in which a small advantage is eventually turned into a new species, but because of the complexity of such a simulation and the amount of tuning required, I don't think this would represent anything but confirmation bias.

My simulation greatly exaggerates the advantage conferred by a prime number, and it assumes something that's almost never true in nature -- that cicadas and predators hatch out in synchrony at the outset. But that set of circumstances does represent a small fitness advantage, and it probably explains the two primary reproduction cycles of the cicada species my paper describes (i.e. 13 and 17 years).


Yes, I certainly did not disagree that the effect is real. But at the same time the effect shown by the simulation is due to an artifact of the simulation.

Consider the two possible groups of predators with cycle 2:

    year       0123456789 ...
    predator1  X X X X X X ...
    predator2   X X X X X X ...
In your simulation, you are only taking into account predator1, i.e. the predator that hatches at even years. You are not taking into account predator2, the one that hatches at odd years. This artificially punishes cicada that have cycles that are multiples of 2. Your argument is essentially that if you had a cicada with an even cycle length, then it would get eaten by predator 1. But one could equally validly say that an even cycle length is an advantage because predator 2 will never be able to eat it. For example the cicada cycle 4:

    year       0123456789 ...
    predator1  X X X X X X ...
    predator2   X X X X X X ...
    cicada     X   X   X   X
This cicada gets eaten by predator1 but not by predator2. So by assuming that all predators with cycle length 2 are of type 1 you are artificially punishing cicada with cycle 4. If you do the simulation with equal amounts of predator1 and predator2 you would not see any difference between prime and non prime cicada.

Now, it could still be that prime numbers have an evolutionary advantage; this kind of simulation is just insufficient to show it. For example I could think of a reason that has to do with natural selection of the predators. Because predators that are in exact dis-synchrony with the cicada have less food, they are less successful. So over time predators of type 1 will increase, and predators of type 2 will decrease. So predators naturally start to synchronize with cicada. That's why prime years are better for cicada, because there are fewer predator types that can synchronize with that. But the synchronization should be an emergent property of the simulation, you can't a priori assume that predators that share a prime factor are always synchronized with the cicada as you have done here.

That's the theory, but in practice I can think of any number of reasons why in practice even this is a very flawed model. The primary reason why cicada all hatch together is because then the predators cannot catch them all because there are simply too many cicada. So if at one point in history the cicada had a cycle of 6 years, then they will not adapt to a cycle of 7 years through evolution. Because the lone cicada that evolves to hatch every 7 years will easily be eaten. This strategy only works when a bunch of them do it together. So it is very possible that 7 years is just a historical accident.


> In your simulation, you are only taking into account predator1, i.e. the predator that hatches at even years.

1. No, not even years necessarily, but any scenario in which cicadas and predators hatch out in synchrony, regardless of the numbering of the years (as long as both cicadas and predators have the same year number applied).

2. Did you miss that I tried adding one more loop that tested all the relationships between cicadas and predators WRT year differential, and that shows only a tiny advantage for prime-numbered years? The size of the effect being discussed only works if predators and cicadas hatch out in synchrony, so my having set both to zero ends up emphasizing this specific case to a perhaps absurd degree. If it weren't for the fact that natural selection tends to amplify small fitness advantages, this relatively small effect might not be be worth discussing.

> The primary reason why cicada all hatch together is because then the predators cannot catch them all because there are simply too many cicada.

Yes, true, but this doesn't address the timing of the synchronous hatch-out. Why 13 and 17 years, and no other cycles in nature? My paper only addresses the timing of the hatch-out, not the fact of it.

> you can't a priori assume that predators that share a prime factor are always synchronized with the cicada as you have done here.

But I don't do that. My simulation addresses the case in which cicadas and predators hatch out in synchrony (advantage goes to the cicada), versus times when they don't (no advantage or disadvantage). It's not an assumption, it addresses the fact that cicadas and predators sometimes do hatch out in synchrony. There is no "always" assumption at work, only that, when there is a synchronous hatch-out, this works to the advantage of prime-numbered reproduction cycles. Other year relationships between cicadas and predators show no advantage or disadvantage.

It's true that my simulation greatly exaggerates the effect, since such a synchronous hatch-out is rare in nature. But I already discussed why designing as full-on natural selection simulation would probably produce nothing more than an exhibition of confirmation bias.

The effect being discussed is real, it is much smaller than my simulation would lead one to believe, but natural selection often amplifies small differences in fitness.


> Did you miss that I tried adding one more loop that tested all the relationships between cicadas and predators WRT year differential, and that shows only a tiny advantage for prime-numbered years?

You asserted this, but I do not believe this is true:

1. Your code so far has bugs that I pointed out that you did not address.

2. My corrected version shows no advantage as you'd intuitively expect.

> It's not an assumption, it addresses the fact that cicadas and predators sometimes do hatch out in synchrony.

You can't assume that because something sometimes happens it always happens. You need to take all possibilities into account evenly.

Anyway, I do not think that further discussion is useful. I have explained my point enough times that repeating it one more time is not going to cause you to see what I mean...so I'm out of this discussion for now.


> Your code so far has bugs that I pointed out that you did not address.

I updated the code. This was not something I remembered to mention, since it didn't change the results for the zero synchrony case -- but it certainly proved your point that a difference in starting year wiped out the advantage, something I then discussed at length.

The current code (the old links should still work for this same version):

https://www.dropbox.com/s/7m8hq9yzcu5nztx/prime_reproduction...

The result:

     3 =   1963 **************************************************************
     4 =   1730 *******************************************************
     5 =   1169 *************************************
     6 =   1373 *******************************************
     7 =    831 **************************
     8 =    983 *******************************
     9 =    799 *************************
    10 =    814 **************************
    11 =    499 ***************
    12 =    842 **************************
    13 =    424 *************
    14 =    584 ******************
    15 =    563 ******************
    16 =    529 ****************
    17 =    302 *********
    18 =    553 *****************
    19 =    273 ********
    20 =    495 ***************
    21 =    400 ************
    22 =    353 ***********
    23 =    227 *******

> My corrected version shows no advantage as you'd intuitively expect.

Not so for the case my simulation models, and other assumptions produce no advantage or disadvantage (they're neutral).

> You can't assume that because something sometimes happens it always happens.

We already covered this. My simulation doesn't make that assumption, it shows the advantage that is present when that happens, however rare that might be.

> You need to take all possibilities into account evenly.

I did. That was the point of my last post. The synchronous hatch-out produces an advantage, no other circumstance does. Therefore the overall advantage is equal to the synchronous advantage multiplied by its probability. This doesn't take into account the fact that natural selection can amplify small fitness advantages, it only describes its genesis -- no feedback effects are considered.

> I have explained my point enough times that repeating it one more time is not going to cause you to see what I mean

I do see what you mean, as I explained at length in my last post. The effect being described is a factor that may explain the two cicada reproduction cycles seen in nature, as my article points out.


Dude, the code you posted again contains the exact same problem that started off this discussion! Even though I've already posted the solution! But of course that solution doesn't suit you because it shows that your previous results are wrong.

I'm not sure if you're saying here that now that you've been made aware of the problem you're just going to say that it's intentional, and that you're introducing this arbitrary assumption because that's what your simulation is supposed to investigate. If that's the case then fine, but the results of your simulation are still meaningless. The reason the prime numbers come out is still a purely synthetic artifact.

I can understand that you're bummed that your article is misleading and don't want to admit it. Just let the article be. I'm probably the first and the last person to ever notice that it's wrong. Has been very effective for psychologists ;-)

Best wishes!


The problem of chain-of-trust still remains. How do you transmit the public keys for verification?


Non-trivial sexually reproducible organisms could generate unique keys from parents keys!

My understanding is that current detection of unauthorized usage of copying enzymes is limited to "if fits or it doesn't fit".



Soon: Eureka (as seen on SySf).




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: