View Full Version : Infinite String and Letter Puzzle
K Sengupta
Jan12-10, 01:24 AM
The string abbcccddddeeeee… continuously repeats such that after the final z, the letters abbcccddddeeeee… begin again.
What will be the 3000th letter in the pattern?
DavidSnider
Jan12-10, 10:29 AM
Here's my guess:
var alpha = "abcdefghijklmnopqrstuvwxyz".split("");
var a = [];
var i=0;
var j=0;
var k=0;
while(i<=3000) {
for(j=0;j<k;j++) {
if(i<3000) {
a.push(alpha[k-1]);
}
i++;
}
k++;
if(k > alpha.length) k = 0;
}
a[a.length-1];
t
davee123
Jan13-10, 10:13 AM
#!perl
for(A..Z) {$s.=$_ x++$i;}
$t=$s.($s x int(3000/length $s));
print substr($t,2999,1)."\n";
Or, more appropriately:
There are 26 letters in the alphabet, hence the string from the first A to the final Z will be ((1+26)/2)*26 characters long (351 characters). 3000 modulo 351 is 192. Hence, the 3000th character will be the same as the 192nd character. You can find this by finding when N choose 2 is equal to or greater than 192, which happens to be at N=20 (20 choose 2 being 210). And the 20th letter of the alphabet is T.
And the next question-- what happens if instead, after the final Z, the next A repeats 27 times, then B repeats 28 times and so forth?
DaveE
#!perl
for(A..Z) {$s.=$_ x++$i;}
$t=$s.($s x int(3000/length $s));
print substr($t,2999,1)."\n";
Or, more appropriately:
There are 26 letters in the alphabet, hence the string from the first A to the final Z will be ((1+26)/2)*26 characters long (351 characters). 3000 modulo 351 is 192. Hence, the 3000th character will be the same as the 192nd character. You can find this by finding when N choose 2 is equal to or greater than 192, which happens to be at N=20 (20 choose 2 being 210). And the 20th letter of the alphabet is T.
And the next question-- what happens if instead, after the final Z, the next A repeats 27 times, then B repeats 28 times and so forth?
DaveE
I used basic math for this. x(x+1) = 6000 and x = int -> x^2 < 6000 < x^2 + x ; x= 77. My answer is Y.
I used basic math for this. x(x+1) = 6000 and x = int -> x^2 < 6000 < x^2 + x ; x= 77. My answer is Y.
There appears to be something wrong with your basic math.
26*(26+1)/2 = 351
3000 / 351 = 8.547...
3000-351(8) = 192
192-1-2-3-4...-19 = 2
So T is the 3000th letter.
vBulletin® v3.8.7, Copyright ©2000-2012, vBulletin Solutions, Inc.