|
|
A372728
|
|
Kronecker's triangle read by rows. T(n, k) = K(n, k) where K(n, k) is the Kronecker symbol (n / k).
|
|
13
|
|
|
0, 1, 1, 0, 1, 0, 0, 1, -1, 0, 0, 1, 0, 1, 0, 0, 1, -1, -1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 1, -1, 1, 0, 0, 1, 0, -1, 0, -1, 0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 0, 0, 0, -1, 0, 1, 0, 0, 1, -1, -1, 1, 1, 1, 1, -1, 1, -1, 0, 0, 1, 0, 0, 0, -1, 0, -1, 0, 0, 0, 1, 0
(list;
table;
graph;
refs;
listen;
history;
text;
internal format)
|
|
|
OFFSET
|
0
|
|
COMMENTS
|
Kronecker's triangle is a signed version of Euclid's triangle A217831 and generalizes and incorporates the Legendre and Jacobi symbols. However, the definition domain of the latter two symbols is inconsistently defined, so the Legendre symbol is typically only defined if the second argument is an odd prime or at least a positive odd integer. All such restrictions do not apply here (apart from limiting the range to the triangular domain 0 <= k <= n).
A096398 lists the indices of the rows that are identical in both triangles (i.e., Kronecker's and Euclid's). These are exactly the rows of T without negative terms.
|
|
REFERENCES
|
Henri Cohen, A Course in Computational Algebraic Number Theory, Springer-Verlag, 1993, p. 28.
|
|
LINKS
|
|
|
EXAMPLE
|
Triangle K(n, k) starts:
[0] 0;
[1] 1, 1;
[2] 0, 1, 0;
[3] 0, 1, -1, 0;
[4] 0, 1, 0, 1, 0;
[5] 0, 1, -1, -1, 1, 0;
[6] 0, 1, 0, 0, 0, 1, 0;
[7] 0, 1, 1, 1, 1, -1, 1, 0;
[8] 0, 1, 0, -1, 0, -1, 0, 1, 0;
[9] 0, 1, 1, 0, 1, 1, 0, 1, 1, 0;
.
Not limiting the range of k leads to the square array:
[0] 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, ... A063524
[1] 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ... A000012
[2] 0, 1, 0, -1, 0, -1, 0, 1, 0, 1, ... A091337
[3] 0, 1, -1, 0, 1, -1, 0, -1, -1, 0, ... A091338
[4] 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, ... A000035
[5] 0, 1, -1, -1, 1, 0, 1, -1, -1, 1, ... A080891
[6] 0, 1, 0, 0, 0, 1, 0, -1, 0, 0, ... A322796
[7] 0, 1, 1, 1, 1, -1, 1, 0, 1, 1, ...
[8] 0, 1, 0, -1, 0, -1, 0, 1, 0, 1, ...
[9] 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, ...
...
|
|
MAPLE
|
K := (n, k) -> NumberTheory:-KroneckerSymbol(n, k):
seq(seq(K(n, k), k = 0..n), n = 0..12);
|
|
MATHEMATICA
|
Table[KroneckerSymbol[n, k], {n, 0, 12}, {k, 0, n}] // Flatten
|
|
PROG
|
(Python) # Demonstrates how the Kronecker symbol
# can be layered on the Jacobi symbol.
from sympy import igcd
from sympy.ntheory import jacobi_symbol
# Alternatively, you can use the function JacobiSymbol from A372877.
def is_even(n): return n % 2 == 0
def kronecker_symbol(n, k):
if not (igcd(n, k) == 1): return 0
if n == 1 or k == 1: return 1
if is_even(k):
if is_even(n): return 0
s = 1 if is_even((n + 1) // 4) else -1
if k == 2: return s
return s * kronecker_symbol(n, k // 2)
return jacobi_symbol(n, k)
for n in range(20):
print([kronecker_symbol(n, k) for k in range(n + 1)])
|
|
CROSSREFS
|
Cf. A071961 (row sums), A000010 (row sum of absolute terms, for n >= 2), A063524 (column 0 and main diagonal).
Cf. A020639 (The index of the first appearance of 0 in row n of the array.)
Cf. A373180 (The index of the first appearance of 1 in row n of the array.)
Cf. A373088 (The index of the first appearance of -1 in row n of the array.)
Cf. A096396 (number of 1s in the triangle row n), A096397 (number of -1s in the triangle row n), A062830 (number of 0s in the triangle row n).
|
|
KEYWORD
|
|
|
AUTHOR
|
|
|
STATUS
|
approved
|
|
|
|