***************************************************************************** * www.FindStat.org - The Combinatorial Statistic Finder * * * * Copyright (C) 2019 The FindStatCrew * * * * This information is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * ***************************************************************************** ----------------------------------------------------------------------------- Statistic identifier: St001424 ----------------------------------------------------------------------------- Collection: Binary words ----------------------------------------------------------------------------- Description: The number of distinct squares in a binary word. A factor of a word is a sequence of consecutive letters. This statistic records the number of distinct non-empty words $u$ such that $uu$ is a factor of the word. Note that every word of length at least four contains a square. ----------------------------------------------------------------------------- References: ----------------------------------------------------------------------------- Code: def statistic(w): lst = [] for i in range(len(w)): for l in range(1, (len(w)-i)//2+1): if w[i:i+l] == w[i+l:i+2*l]: lst.append(tuple(w[i:i+l])) return len(set(lst)) ----------------------------------------------------------------------------- Statistic values: 0 => 0 1 => 0 00 => 1 01 => 0 10 => 0 11 => 1 000 => 1 001 => 1 010 => 0 011 => 1 100 => 1 101 => 0 110 => 1 111 => 1 0000 => 2 0001 => 1 0010 => 1 0011 => 2 0100 => 1 0101 => 1 0110 => 1 0111 => 1 1000 => 1 1001 => 1 1010 => 1 1011 => 1 1100 => 2 1101 => 1 1110 => 1 1111 => 2 00000 => 2 00001 => 2 00010 => 1 00011 => 2 00100 => 1 00101 => 2 00110 => 2 00111 => 2 01000 => 1 01001 => 1 01010 => 2 01011 => 2 01100 => 2 01101 => 1 01110 => 1 01111 => 2 10000 => 2 10001 => 1 10010 => 1 10011 => 2 10100 => 2 10101 => 2 10110 => 1 10111 => 1 11000 => 2 11001 => 2 11010 => 2 11011 => 1 11100 => 2 11101 => 1 11110 => 2 11111 => 2 000000 => 3 000001 => 2 000010 => 2 000011 => 3 000100 => 1 000101 => 2 000110 => 2 000111 => 2 001000 => 1 001001 => 2 001010 => 3 001011 => 3 001100 => 2 001101 => 2 001110 => 2 001111 => 3 010000 => 2 010001 => 1 010010 => 2 010011 => 2 010100 => 3 010101 => 2 010110 => 2 010111 => 2 011000 => 2 011001 => 2 011010 => 2 011011 => 2 011100 => 2 011101 => 1 011110 => 2 011111 => 2 100000 => 2 100001 => 2 100010 => 1 100011 => 2 100100 => 2 100101 => 2 100110 => 2 100111 => 2 101000 => 2 101001 => 2 101010 => 2 101011 => 3 101100 => 2 101101 => 2 101110 => 1 101111 => 2 110000 => 3 110001 => 2 110010 => 2 110011 => 2 110100 => 3 110101 => 3 110110 => 2 110111 => 1 111000 => 2 111001 => 2 111010 => 2 111011 => 1 111100 => 3 111101 => 2 111110 => 2 111111 => 3 0000000 => 3 0000001 => 3 0000010 => 2 0000011 => 3 0000100 => 2 0000101 => 3 0000110 => 3 0000111 => 3 0001000 => 1 0001001 => 2 0001010 => 3 0001011 => 3 0001100 => 2 0001101 => 2 0001110 => 2 0001111 => 3 0010000 => 2 0010001 => 1 0010010 => 3 0010011 => 3 0010100 => 3 0010101 => 3 0010110 => 3 0010111 => 3 0011000 => 2 0011001 => 2 0011010 => 3 0011011 => 3 0011100 => 2 0011101 => 2 0011110 => 3 0011111 => 3 0100000 => 2 0100001 => 2 0100010 => 1 0100011 => 2 0100100 => 3 0100101 => 3 0100110 => 2 0100111 => 2 0101000 => 3 0101001 => 3 0101010 => 2 0101011 => 3 0101100 => 3 0101101 => 3 0101110 => 2 0101111 => 3 0110000 => 3 0110001 => 2 0110010 => 2 0110011 => 2 0110100 => 3 0110101 => 3 0110110 => 3 0110111 => 2 0111000 => 2 0111001 => 2 0111010 => 2 0111011 => 1 0111100 => 3 0111101 => 2 0111110 => 2 0111111 => 3 1000000 => 3 1000001 => 2 1000010 => 2 1000011 => 3 1000100 => 1 1000101 => 2 1000110 => 2 1000111 => 2 1001000 => 2 1001001 => 3 1001010 => 3 1001011 => 3 1001100 => 2 1001101 => 2 1001110 => 2 1001111 => 3 1010000 => 3 1010001 => 2 1010010 => 3 1010011 => 3 1010100 => 3 1010101 => 2 1010110 => 3 1010111 => 3 1011000 => 2 1011001 => 2 1011010 => 3 1011011 => 3 1011100 => 2 1011101 => 1 1011110 => 2 1011111 => 2 1100000 => 3 1100001 => 3 1100010 => 2 1100011 => 2 1100100 => 3 1100101 => 3 1100110 => 2 1100111 => 2 1101000 => 3 1101001 => 3 1101010 => 3 1101011 => 3 1101100 => 3 1101101 => 3 1101110 => 1 1101111 => 2 1110000 => 3 1110001 => 2 1110010 => 2 1110011 => 2 1110100 => 3 1110101 => 3 1110110 => 2 1110111 => 1 1111000 => 3 1111001 => 3 1111010 => 3 1111011 => 2 1111100 => 3 1111101 => 2 1111110 => 3 1111111 => 3 00000000 => 4 00000001 => 3 00000010 => 3 00000011 => 4 00000100 => 2 00000101 => 3 00000110 => 3 00000111 => 3 00001000 => 2 00001001 => 3 00001010 => 4 00001011 => 4 00001100 => 3 00001101 => 3 00001110 => 3 00001111 => 4 00010000 => 2 00010001 => 2 00010010 => 3 00010011 => 3 00010100 => 3 00010101 => 3 00010110 => 3 00010111 => 3 00011000 => 2 00011001 => 2 00011010 => 3 00011011 => 3 00011100 => 2 00011101 => 2 00011110 => 3 00011111 => 3 00100000 => 2 00100001 => 2 00100010 => 2 00100011 => 2 00100100 => 4 00100101 => 4 00100110 => 3 00100111 => 3 00101000 => 3 00101001 => 3 00101010 => 3 00101011 => 4 00101100 => 3 00101101 => 4 00101110 => 3 00101111 => 4 00110000 => 3 00110001 => 2 00110010 => 2 00110011 => 3 00110100 => 3 00110101 => 4 00110110 => 4 00110111 => 3 00111000 => 2 00111001 => 2 00111010 => 3 00111011 => 2 00111100 => 3 00111101 => 3 00111110 => 3 00111111 => 4 01000000 => 3 01000001 => 2 01000010 => 2 01000011 => 3 01000100 => 2 01000101 => 2 01000110 => 2 01000111 => 2 01001000 => 3 01001001 => 4 01001010 => 4 01001011 => 4 01001100 => 2 01001101 => 2 01001110 => 2 01001111 => 3 01010000 => 4 01010001 => 3 01010010 => 4 01010011 => 4 01010100 => 3 01010101 => 3 01010110 => 3 01010111 => 3 01011000 => 3 01011001 => 3 01011010 => 4 01011011 => 4 01011100 => 3 01011101 => 2 01011110 => 3 01011111 => 3 01100000 => 3 01100001 => 3 01100010 => 2 01100011 => 2 01100100 => 3 01100101 => 3 01100110 => 3 01100111 => 2 01101000 => 3 01101001 => 3 01101010 => 3 01101011 => 3 01101100 => 4 01101101 => 4 01101110 => 2 01101111 => 3 01110000 => 3 01110001 => 2 01110010 => 2 01110011 => 2 01110100 => 3 01110101 => 3 01110110 => 2 01110111 => 2 01111000 => 3 01111001 => 3 01111010 => 3 01111011 => 2 01111100 => 3 01111101 => 2 01111110 => 3 01111111 => 3 10000000 => 3 10000001 => 3 10000010 => 2 10000011 => 3 10000100 => 2 10000101 => 3 10000110 => 3 10000111 => 3 10001000 => 2 10001001 => 2 10001010 => 3 10001011 => 3 10001100 => 2 10001101 => 2 10001110 => 2 10001111 => 3 10010000 => 3 10010001 => 2 10010010 => 4 10010011 => 4 10010100 => 3 10010101 => 3 10010110 => 3 10010111 => 3 10011000 => 2 10011001 => 3 10011010 => 3 10011011 => 3 10011100 => 2 10011101 => 2 10011110 => 3 10011111 => 3 10100000 => 3 10100001 => 3 10100010 => 2 10100011 => 3 10100100 => 4 10100101 => 4 10100110 => 3 10100111 => 3 10101000 => 3 10101001 => 3 10101010 => 3 10101011 => 3 10101100 => 4 10101101 => 4 10101110 => 3 10101111 => 4 10110000 => 3 10110001 => 2 10110010 => 2 10110011 => 2 10110100 => 4 10110101 => 4 10110110 => 4 10110111 => 3 10111000 => 2 10111001 => 2 10111010 => 2 10111011 => 2 10111100 => 3 10111101 => 2 10111110 => 2 10111111 => 3 11000000 => 4 11000001 => 3 11000010 => 3 11000011 => 3 11000100 => 2 11000101 => 3 11000110 => 2 11000111 => 2 11001000 => 3 11001001 => 4 11001010 => 4 11001011 => 3 11001100 => 3 11001101 => 2 11001110 => 2 11001111 => 3 11010000 => 4 11010001 => 3 11010010 => 4 11010011 => 3 11010100 => 4 11010101 => 3 11010110 => 3 11010111 => 3 11011000 => 3 11011001 => 3 11011010 => 4 11011011 => 4 11011100 => 2 11011101 => 2 11011110 => 2 11011111 => 2 11100000 => 3 11100001 => 3 11100010 => 2 11100011 => 2 11100100 => 3 11100101 => 3 11100110 => 2 11100111 => 2 11101000 => 3 11101001 => 3 11101010 => 3 11101011 => 3 11101100 => 3 11101101 => 3 11101110 => 2 11101111 => 2 11110000 => 4 11110001 => 3 11110010 => 3 11110011 => 3 11110100 => 4 11110101 => 4 11110110 => 3 11110111 => 2 11111000 => 3 11111001 => 3 11111010 => 3 11111011 => 2 11111100 => 4 11111101 => 3 11111110 => 3 11111111 => 4 000000000 => 4 000000001 => 4 000000010 => 3 000000011 => 4 000000100 => 3 000000101 => 4 000000110 => 4 000000111 => 4 000001000 => 2 000001001 => 3 000001010 => 4 000001011 => 4 000001100 => 3 000001101 => 3 000001110 => 3 000001111 => 4 000010000 => 2 000010001 => 3 000010010 => 4 000010011 => 4 000010100 => 4 000010101 => 4 000010110 => 4 000010111 => 4 000011000 => 3 000011001 => 3 000011010 => 4 000011011 => 4 000011100 => 3 000011101 => 3 000011110 => 4 000011111 => 4 000100000 => 2 000100001 => 2 000100010 => 3 000100011 => 3 000100100 => 4 000100101 => 4 000100110 => 3 000100111 => 3 000101000 => 3 000101001 => 3 000101010 => 3 000101011 => 4 000101100 => 3 000101101 => 4 000101110 => 3 000101111 => 4 000110000 => 3 000110001 => 2 000110010 => 2 000110011 => 3 000110100 => 3 000110101 => 4 000110110 => 4 000110111 => 3 000111000 => 2 000111001 => 2 000111010 => 3 000111011 => 2 000111100 => 3 000111101 => 3 000111110 => 3 000111111 => 4 001000000 => 3 001000001 => 2 001000010 => 2 001000011 => 3 001000100 => 3 001000101 => 3 001000110 => 2 001000111 => 2 001001000 => 4 001001001 => 4 001001010 => 5 001001011 => 5 001001100 => 3 001001101 => 3 001001110 => 3 001001111 => 4 001010000 => 4 001010001 => 3 001010010 => 4 001010011 => 4 001010100 => 3 001010101 => 4 001010110 => 4 001010111 => 4 001011000 => 3 001011001 => 3 001011010 => 5 001011011 => 5 001011100 => 3 001011101 => 3 001011110 => 4 001011111 => 4 001100000 => 3 001100001 => 3 001100010 => 2 001100011 => 2 001100100 => 3 001100101 => 3 001100110 => 4 001100111 => 3 001101000 => 3 001101001 => 3 001101010 => 4 001101011 => 4 001101100 => 4 001101101 => 5 001101110 => 3 001101111 => 4 001110000 => 3 001110001 => 2 001110010 => 2 001110011 => 2 001110100 => 3 001110101 => 4 001110110 => 3 001110111 => 3 001111000 => 3 001111001 => 3 001111010 => 4 001111011 => 3 001111100 => 3 001111101 => 3 001111110 => 4 001111111 => 4 010000000 => 3 010000001 => 3 010000010 => 2 010000011 => 3 010000100 => 2 010000101 => 3 010000110 => 3 010000111 => 3 010001000 => 3 010001001 => 3 010001010 => 3 010001011 => 3 010001100 => 2 010001101 => 2 010001110 => 2 010001111 => 3 010010000 => 4 010010001 => 3 010010010 => 4 010010011 => 5 010010100 => 4 010010101 => 4 010010110 => 4 010010111 => 4 010011000 => 2 010011001 => 3 010011010 => 3 010011011 => 3 010011100 => 2 010011101 => 2 010011110 => 3 010011111 => 3 010100000 => 4 010100001 => 4 010100010 => 3 010100011 => 4 010100100 => 5 010100101 => 4 010100110 => 4 010100111 => 4 010101000 => 3 010101001 => 3 010101010 => 4 010101011 => 4 010101100 => 4 010101101 => 4 010101110 => 3 010101111 => 4 010110000 => 4 010110001 => 3 010110010 => 3 010110011 => 3 010110100 => 5 010110101 => 4 010110110 => 5 010110111 => 4 010111000 => 3 010111001 => 3 010111010 => 3 010111011 => 3 010111100 => 4 010111101 => 3 010111110 => 3 010111111 => 4 011000000 => 4 011000001 => 3 011000010 => 3 011000011 => 3 011000100 => 2 011000101 => 3 011000110 => 2 011000111 => 2 011001000 => 3 011001001 => 4 011001010 => 4 011001011 => 3 011001100 => 4 011001101 => 3 011001110 => 2 011001111 => 3 011010000 => 4 011010001 => 3 011010010 => 4 011010011 => 3 011010100 => 4 011010101 => 3 011010110 => 3 011010111 => 3 011011000 => 4 011011001 => 4 011011010 => 5 011011011 => 4 011011100 => 3 011011101 => 3 011011110 => 3 011011111 => 3 011100000 => 3 011100001 => 3 011100010 => 2 011100011 => 2 011100100 => 3 011100101 => 3 011100110 => 2 011100111 => 2 011101000 => 3 011101001 => 3 011101010 => 3 011101011 => 3 011101100 => 3 011101101 => 3 011101110 => 3 011101111 => 3 011110000 => 4 011110001 => 3 011110010 => 3 011110011 => 3 011110100 => 4 011110101 => 4 011110110 => 3 011110111 => 2 011111000 => 3 011111001 => 3 011111010 => 3 011111011 => 2 011111100 => 4 011111101 => 3 011111110 => 3 011111111 => 4 100000000 => 4 100000001 => 3 100000010 => 3 100000011 => 4 100000100 => 2 100000101 => 3 100000110 => 3 100000111 => 3 100001000 => 2 100001001 => 3 100001010 => 4 100001011 => 4 100001100 => 3 100001101 => 3 100001110 => 3 100001111 => 4 100010000 => 3 100010001 => 3 100010010 => 3 100010011 => 3 100010100 => 3 100010101 => 3 100010110 => 3 100010111 => 3 100011000 => 2 100011001 => 2 100011010 => 3 100011011 => 3 100011100 => 2 100011101 => 2 100011110 => 3 100011111 => 3 100100000 => 3 100100001 => 3 100100010 => 3 100100011 => 3 100100100 => 4 100100101 => 5 100100110 => 4 100100111 => 4 100101000 => 3 100101001 => 3 100101010 => 3 100101011 => 4 100101100 => 3 100101101 => 4 100101110 => 3 100101111 => 4 100110000 => 3 100110001 => 2 100110010 => 3 100110011 => 4 100110100 => 3 100110101 => 4 100110110 => 4 100110111 => 3 100111000 => 2 100111001 => 2 100111010 => 3 100111011 => 2 100111100 => 3 100111101 => 3 100111110 => 3 100111111 => 4 101000000 => 4 101000001 => 3 101000010 => 3 101000011 => 4 101000100 => 3 101000101 => 3 101000110 => 3 101000111 => 3 101001000 => 4 101001001 => 5 101001010 => 4 101001011 => 5 101001100 => 3 101001101 => 3 101001110 => 3 101001111 => 4 101010000 => 4 101010001 => 3 101010010 => 4 101010011 => 4 101010100 => 4 101010101 => 4 101010110 => 3 101010111 => 3 101011000 => 4 101011001 => 4 101011010 => 4 101011011 => 5 101011100 => 4 101011101 => 3 101011110 => 4 101011111 => 4 101100000 => 3 101100001 => 3 101100010 => 2 101100011 => 2 101100100 => 3 101100101 => 3 101100110 => 3 101100111 => 2 101101000 => 4 101101001 => 4 101101010 => 4 101101011 => 4 101101100 => 5 101101101 => 4 101101110 => 3 101101111 => 4 101110000 => 3 101110001 => 2 101110010 => 2 101110011 => 2 101110100 => 3 101110101 => 3 101110110 => 3 101110111 => 3 101111000 => 3 101111001 => 3 101111010 => 3 101111011 => 2 101111100 => 3 101111101 => 2 101111110 => 3 101111111 => 3 110000000 => 4 110000001 => 4 110000010 => 3 110000011 => 3 110000100 => 3 110000101 => 4 110000110 => 3 110000111 => 3 110001000 => 3 110001001 => 3 110001010 => 4 110001011 => 3 110001100 => 2 110001101 => 2 110001110 => 2 110001111 => 3 110010000 => 4 110010001 => 3 110010010 => 5 110010011 => 4 110010100 => 4 110010101 => 4 110010110 => 3 110010111 => 3 110011000 => 3 110011001 => 4 110011010 => 3 110011011 => 3 110011100 => 2 110011101 => 2 110011110 => 3 110011111 => 3 110100000 => 4 110100001 => 4 110100010 => 3 110100011 => 3 110100100 => 5 110100101 => 5 110100110 => 3 110100111 => 3 110101000 => 4 110101001 => 4 110101010 => 4 110101011 => 3 110101100 => 4 110101101 => 4 110101110 => 3 110101111 => 4 110110000 => 4 110110001 => 3 110110010 => 3 110110011 => 3 110110100 => 5 110110101 => 5 110110110 => 4 110110111 => 4 110111000 => 2 110111001 => 2 110111010 => 3 110111011 => 3 110111100 => 3 110111101 => 2 110111110 => 2 110111111 => 3 111000000 => 4 111000001 => 3 111000010 => 3 111000011 => 3 111000100 => 2 111000101 => 3 111000110 => 2 111000111 => 2 111001000 => 3 111001001 => 4 111001010 => 4 111001011 => 3 111001100 => 3 111001101 => 2 111001110 => 2 111001111 => 3 111010000 => 4 111010001 => 3 111010010 => 4 111010011 => 3 111010100 => 4 111010101 => 3 111010110 => 3 111010111 => 3 111011000 => 3 111011001 => 3 111011010 => 4 111011011 => 4 111011100 => 3 111011101 => 3 111011110 => 2 111011111 => 2 111100000 => 4 111100001 => 4 111100010 => 3 111100011 => 3 111100100 => 4 111100101 => 4 111100110 => 3 111100111 => 3 111101000 => 4 111101001 => 4 111101010 => 4 111101011 => 4 111101100 => 4 111101101 => 4 111101110 => 3 111101111 => 2 111110000 => 4 111110001 => 3 111110010 => 3 111110011 => 3 111110100 => 4 111110101 => 4 111110110 => 3 111110111 => 2 111111000 => 4 111111001 => 4 111111010 => 4 111111011 => 3 111111100 => 4 111111101 => 3 111111110 => 4 111111111 => 4 ----------------------------------------------------------------------------- Created: Jun 20, 2019 at 00:28 by Martin Rubey ----------------------------------------------------------------------------- Last Updated: Jun 20, 2019 at 08:39 by Martin Rubey