Infinite String and Letter Puzzle

  • Context: High School 
  • Thread starter Thread starter K Sengupta
  • Start date Start date
  • Tags Tags
    Infinite Puzzle String
Click For Summary
SUMMARY

The discussion centers on determining the 3000th letter in a repeating string pattern of letters where each letter's frequency increases sequentially. The initial pattern is "abbcccddddeeeee…", and participants provided code snippets in Perl to compute the desired letter. The first solution utilizes a loop to build the string dynamically, while a follow-up question explores the implications of modifying the pattern to increase the repetition of letters after 'Z'. The consensus indicates that basic mathematical principles are essential for solving these types of string puzzles.

PREREQUISITES
  • Understanding of string manipulation in programming languages like Perl
  • Familiarity with loops and conditional statements in coding
  • Basic mathematical concepts related to sequences and series
  • Knowledge of character encoding and ASCII values
NEXT STEPS
  • Explore advanced string manipulation techniques in Perl
  • Learn about algorithm optimization for sequence generation
  • Investigate mathematical patterns in string sequences
  • Study character encoding and its impact on string operations
USEFUL FOR

Programmers, mathematicians, and puzzle enthusiasts interested in string algorithms and computational problem-solving.

K Sengupta
Messages
113
Reaction score
0
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?
 
Last edited:
Mathematics news on Phys.org
T
I think
 
I Think it´s:
R
 
Here's my guess:

Code:
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
 
Last edited:
Code:
#!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
 
Last edited:
davee123 said:
Code:
#!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.
 
Zubin said:
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.
 

Similar threads

  • · Replies 14 ·
Replies
14
Views
3K
Replies
7
Views
16K
  • · Replies 2 ·
Replies
2
Views
937
  • · Replies 17 ·
Replies
17
Views
2K
  • · Replies 28 ·
Replies
28
Views
2K
Replies
1
Views
2K
  • · Replies 12 ·
Replies
12
Views
2K
  • · Replies 24 ·
Replies
24
Views
3K
  • · Replies 3 ·
Replies
3
Views
4K
Replies
6
Views
3K