about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--kgramstats.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/kgramstats.cpp b/kgramstats.cpp index 4a7eb9d..c674e80 100644 --- a/kgramstats.cpp +++ b/kgramstats.cpp
@@ -578,11 +578,16 @@ std::string rawr::randomSentence(int maxL) const
578 cur.pop_front(); 578 cur.pop_front();
579 } 579 }
580 580
581 if ((cur.size() > 2) && (cuts > 0) && ((rand() % cuts) > 0)) 581 do
582 { 582 {
583 cur.pop_front(); 583 if ((cur.size() > 2) && (cuts > 0) && ((rand() % cuts) > 0))
584 cuts /= 2; 584 {
585 } 585 cur.pop_front();
586 cuts--;
587 } else {
588 break;
589 }
590 } while ((cur.size() > 2) && (cuts > 0) && ((rand() % cuts) > 0));
586 591
587 // Gotta circumvent the last line of the input corpus 592 // Gotta circumvent the last line of the input corpus
588 // https://twitter.com/starla4444/status/684222271339237376 593 // https://twitter.com/starla4444/status/684222271339237376
@@ -711,7 +716,7 @@ std::string rawr::randomSentence(int maxL) const
711 cuts++; 716 cuts++;
712 } else if (cuts > 0) { 717 } else if (cuts > 0) {
713 // Otherwise, decrease cut chance 718 // Otherwise, decrease cut chance
714 cuts--; 719 cuts /= 2;
715 } 720 }
716 721
717 if (next.corpora.size() == 1) 722 if (next.corpora.size() == 1)