undraft sand-2; minor edits
This commit is contained in:
parent
324bda9563
commit
f864bea4d6
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -10,6 +10,7 @@ date-modified: "2025-02-20"
|
|||||||
jupyter: python3
|
jupyter: python3
|
||||||
categories:
|
categories:
|
||||||
- algebra
|
- algebra
|
||||||
|
- sandpile
|
||||||
- python
|
- python
|
||||||
execute:
|
execute:
|
||||||
echo: false
|
echo: false
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
---
|
---
|
||||||
title: "Counting in 2D 2: Reorienting Polynomials"
|
title: "Counting in 2D, Part 2: Reorienting Polynomials"
|
||||||
draft: true
|
description: |
|
||||||
|
Geometric properties of certain 2D systems and attempts to classify them.
|
||||||
format:
|
format:
|
||||||
html:
|
html:
|
||||||
html-math-method: katex
|
html-math-method: katex
|
||||||
@ -9,15 +10,28 @@ date-modified: "2025-02-23"
|
|||||||
jupyter: python3
|
jupyter: python3
|
||||||
categories:
|
categories:
|
||||||
- algebra
|
- algebra
|
||||||
|
- geometry
|
||||||
|
- sandpile
|
||||||
- python
|
- python
|
||||||
execute:
|
execute:
|
||||||
echo: false
|
echo: false
|
||||||
---
|
---
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.cell-output-display .figure {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.figure-img {
|
||||||
|
max-width: 512px;
|
||||||
|
object-fit: contain;
|
||||||
|
height: 100%;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
```{python}
|
```{python}
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
from IPython.display import Video, display
|
|
||||||
from matplotlib import pyplot as plt
|
from matplotlib import pyplot as plt
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
|
||||||
@ -139,11 +153,9 @@ if not Path("./count_balanced_folium.mp4").exists():
|
|||||||
).save("count_balanced_folium.mp4")
|
).save("count_balanced_folium.mp4")
|
||||||
except ValueError:
|
except ValueError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
display(
|
|
||||||
Video("./count_balanced_folium.mp4"),
|
|
||||||
)
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
{{< video ./count_balanced_folium.mp4 >}}
|
||||||
:::
|
:::
|
||||||
|
|
||||||
|
|
||||||
@ -183,11 +195,9 @@ if not Path("./count_half_laplacian.mp4").exists():
|
|||||||
).save("count_half_laplacian.mp4")
|
).save("count_half_laplacian.mp4")
|
||||||
except ValueError:
|
except ValueError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
display(
|
|
||||||
Video("./count_half_laplacian.mp4"),
|
|
||||||
)
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
{{< video ./count_half_laplacian.mp4 >}}
|
||||||
:::
|
:::
|
||||||
|
|
||||||
Fortunately, this is the case.
|
Fortunately, this is the case.
|
||||||
@ -477,9 +487,8 @@ if not Path("./count_triangle_carries.mp4").exists():
|
|||||||
).save("./count_triangle_carries.mp4")
|
).save("./count_triangle_carries.mp4")
|
||||||
except ValueError:
|
except ValueError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
Video("./count_triangle_carries.mp4")
|
|
||||||
```
|
```
|
||||||
|
{{< video ./count_triangle_carries.mp4 >}}
|
||||||
|
|
||||||
Counting in each of the $x^n + y^n + \ldots$ systems
|
Counting in each of the $x^n + y^n + \ldots$ systems
|
||||||
:::
|
:::
|
||||||
@ -492,7 +501,7 @@ It has somehow exceeded a threshold that the centered one has not.
|
|||||||
Incidentally, the L-shapes in the implicit carry (which I noted can be interchanged) never turn up,
|
Incidentally, the L-shapes in the implicit carry (which I noted can be interchanged) never turn up,
|
||||||
and the "initial rule" is useless.
|
and the "initial rule" is useless.
|
||||||
Phinary, the simplest implicit case in one dimension, still requires the initial rule to go
|
Phinary, the simplest implicit case in one dimension, still requires the initial rule to go
|
||||||
from the expansion of 2 (10.01) to 3 (100.01).
|
from the expansion of two (10.01) to three (100.01).
|
||||||
|
|
||||||
|
|
||||||
Isosceles Rotations
|
Isosceles Rotations
|
||||||
@ -536,13 +545,12 @@ if not Path("./count_bad_rotated_triangle.mp4").exists():
|
|||||||
except ValueError:
|
except ValueError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
display(
|
|
||||||
Video("./count_bad_rotated_triangle.mp4"),
|
|
||||||
)
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
{{< video ./count_bad_rotated_triangle.mp4 >}}
|
||||||
:::
|
:::
|
||||||
|
|
||||||
But there are only even numbers in the first component of each vector
|
But there are only even numbers in the first component of each vector.
|
||||||
Therefore, the carry below will produce the same pattern.
|
Therefore, the carry below will produce the same pattern.
|
||||||
|
|
||||||
::: {layout-ncol="2"}
|
::: {layout-ncol="2"}
|
||||||
@ -575,11 +583,9 @@ if not Path("./count_bad_rotated_triangle_reduced.mp4").exists():
|
|||||||
).save("./count_bad_rotated_triangle_reduced.mp4")
|
).save("./count_bad_rotated_triangle_reduced.mp4")
|
||||||
except ValueError:
|
except ValueError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
display(
|
|
||||||
Video("./count_bad_rotated_triangle_reduced.mp4"),
|
|
||||||
)
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
{{< video ./count_bad_rotated_triangle_reduced.mp4 >}}
|
||||||
:::
|
:::
|
||||||
|
|
||||||
Neither of these are similar to the original.
|
Neither of these are similar to the original.
|
||||||
@ -654,11 +660,9 @@ if not Path("./count_good_rotated_triangle.mp4").exists():
|
|||||||
).save("./count_good_rotated_triangle.mp4")
|
).save("./count_good_rotated_triangle.mp4")
|
||||||
except ValueError:
|
except ValueError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
display(
|
|
||||||
Video("./count_good_rotated_triangle.mp4"),
|
|
||||||
)
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
{{< video ./count_good_rotated_triangle.mp4 >}}
|
||||||
:::
|
:::
|
||||||
|
|
||||||
The counting video looks very promising, but can the polynomial factored?
|
The counting video looks very promising, but can the polynomial factored?
|
||||||
@ -727,11 +731,9 @@ if not Path("./count_good_rotated_triangle_reduced.mp4").exists():
|
|||||||
).save("./count_good_rotated_triangle_reduced.mp4")
|
).save("./count_good_rotated_triangle_reduced.mp4")
|
||||||
except ValueError:
|
except ValueError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
display(
|
|
||||||
Video("./count_good_rotated_triangle_reduced.mp4"),
|
|
||||||
)
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
{{< video ./count_good_rotated_triangle_reduced.mp4 >}}
|
||||||
:::
|
:::
|
||||||
|
|
||||||
All of these similar systems is share something in common: the pseudo-base is located at
|
All of these similar systems is share something in common: the pseudo-base is located at
|
||||||
@ -753,11 +755,11 @@ No matter if we multiply or divide by *x* or *y*, the polynomial retains its gen
|
|||||||
as well as whether or not it is irreducible.
|
as well as whether or not it is irreducible.
|
||||||
The above method shows that rotational symmetry also exists for polynomials beyond interchanging *x* and *y*.
|
The above method shows that rotational symmetry also exists for polynomials beyond interchanging *x* and *y*.
|
||||||
|
|
||||||
Carries seem to possess a symmetry which polynomials do not: the ability to contract and expand bases,
|
For integers, carries possess a symmetry which polynomials do not: the ability to contract and expand bases,
|
||||||
meaning that in some sense, $P(x) \sim P(x^k)$ for any *k*.
|
meaning that in some sense, $P(x) \sim P(x^k)$ for any *k*.
|
||||||
This preserves the counting system despite expansions and contractions which pay no regard for reducibility.
|
This preserves the counting system despite expansions and contractions which pay no regard for reducibility.
|
||||||
This is also the reason that systems like base-$\sqrt 2$ are so uninteresting:
|
This is also the reason that systems like base-$\sqrt 2$ are so uninteresting:
|
||||||
for integers, it's just spaced out binary.
|
for integers, it just amounts to spaced-out binary.
|
||||||
|
|
||||||
Three questions that immediately come to mind are:
|
Three questions that immediately come to mind are:
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user