-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 My solution: 1 Send mails with N words (see @steps) 2 delete all words of the clean mails 3 shuffle word list 4 repeat with a smaller N ########### class JannisHardersAlgorithm < RQ9Algorithm def initialize() @steps = [110000,700000,300000,200000,110000, 70000,30000,20000,11000,7000, 3000,2000,1100,700,300,200,110, 70,30,20,11,7,3,2,1] end def run() wordsLeft = @words.dup @steps.each do |count| if count*6 > @words.length next end position = 0 while position < wordsLeft.length testMail = wordsLeft[position .. position+count-1].join(" ") if @filter.clean? testMail (position .. position+count-1).each do |i| wordsLeft[i]=nil end end position += count end wordsLeft.compact! # delete nil words wordsLeft = wordsLeft.sort_by{rand} #shuffle end wordsLeft end end ########## Results : Test: (15000,2,5,true) # 0.1% Runs: 5 Words: 15000 Banned Words: 2 Average Seconds: 0.1430744 Mails: 47 Verified: 5/5 Rebuilt Banned Words Test: (15000,15,5,true) # 1% Runs: 5 Words: 15000 Banned Words: 15 Average Seconds: 0.833412 Mails: 260 Verified: 5/5 Rebuilt Banned Words Test: (15000,150,5,true) # 10% Runs: 5 Words: 15000 Banned Words: 150 Average Seconds: 9.6565792 Mails: 1786 Verified: 5/5 Rebuilt Banned Words -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.6 (Darwin) iD8DBQFBqlIu5YRWfc27RzQRAiUmAKCABFWkF/7DHWV1RvmdZYFN1RwiBgCgzebx zKrKCGj2L0SuRaayuRvGJJg= =qzPr -----END PGP SIGNATURE-----