From 904a3df1a5dcba5022287b56bddb4e8ce6d1d7e8 Mon Sep 17 00:00:00 2001 From: kanin-kearpimy Date: Tue, 12 Mar 2024 13:12:25 +1100 Subject: [PATCH 1/2] loop until new partner is different --- src/model/model.class.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/model/model.class.ts b/src/model/model.class.ts index 0755b10..2961213 100644 --- a/src/model/model.class.ts +++ b/src/model/model.class.ts @@ -283,11 +283,11 @@ export class Model { return this.mutatePermutation(); } - const partner = min + 1 == max ? min : Paul.chooseBetween(max, min, BIAS.REVERSE_BELL); - if (chosen == partner) { - // would that ever happen ? - return this.mutatePermutation(); + let partner = min + 1 == max ? min : Paul.chooseBetween(max, min, BIAS.REVERSE_BELL); + while (chosen == partner) { + partner = Paul.chooseBetween(max, min, BIAS.REVERSE_BELL); } + const [a] = Model._order.splice(chosen, 1); const b = Model._order[partner]; From 144c9afaf79dfd72a4ef69b3f80a3c0ab770c7fc Mon Sep 17 00:00:00 2001 From: kanin-kearpimy Date: Tue, 12 Mar 2024 13:14:06 +1100 Subject: [PATCH 2/2] add comment --- src/model/model.class.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/model/model.class.ts b/src/model/model.class.ts index 2961213..5b4883f 100644 --- a/src/model/model.class.ts +++ b/src/model/model.class.ts @@ -285,6 +285,9 @@ export class Model { let partner = min + 1 == max ? min : Paul.chooseBetween(max, min, BIAS.REVERSE_BELL); while (chosen == partner) { + // if chosen is same as partner + // randomize until it isn't + // this will work on condition: there are more than two choices in range. partner = Paul.chooseBetween(max, min, BIAS.REVERSE_BELL); }