Сурет:Regular divisibility lattice.svg
testwiki жобасынан
Навигацияға өту
Іздеуге өту
Size of this PNG preview of this SVG file: 800 × 475 пиксел. Басқа ажыратылымдықтар: 320 × 190 пиксел | 640 × 380 пиксел | 1024 × 608 пиксел | 1280 × 760 пиксел | 2560 × 1519 пиксел | 1363 × 809 пиксел.
Түпнұсқа файл (SVG файлы, кесімді 1363 × 809 (пиксел) нүкте, файл өлшемі: 13 КБ)
Бұл файл Wikimedia Commons жобасынан және басқа жобаларда қолданылуы мүмкін. Оның файл сипаттама бетіндегі сипаттамасы төменде көрсетілген.
Түйін
| СипаттамасыRegular divisibility lattice.svg | A Hasse diagram of divisibility relationships among regular numbers up to 400. As shown by the horizontal light red lines, the vertical position of each number is proportional to its logarithm. Inspired by similar diagrams in a paper by Kurenniemi [1]. |
| Күні | 14 наурыз 2007 (original upload date) |
| Көзі | Transferred from en.wikipedia to Commons. |
| Авторы | David Eppstein at ағылшын тілі Уикипедия |
Лицензиялау
| Public domainPublic domainfalsefalse |
| This work has been released into the public domain by its author, David Eppstein at ағылшын тілі Уикипедия. This applies worldwide. In some countries this may not be legally possible; if so: David Eppstein grants anyone the right to use this work for any purpose, without any conditions, unless such conditions are required by law.Public domainPublic domainfalsefalse |
Source code
The Python source code for generating this image:
from math import log
limit = 400
radius = 17
margin = 4
xscale = yscale = 128
skew = 0.285
def A051037():
yield 1
seq = [1]
spiders = [(2,2,0,0),(3,3,0,1),(5,5,0,2)]
while True:
x,p,i,j = min(spiders)
if x != seq[-1]:
yield x
seq.append(x)
spiders[j] = (p*seq[i+1],p,i+1,j)
def nfactors(h,p):
nf = 0
while h % p == 0:
nf += 1
h //= p
return nf
seq = []
for h in A051037():
if h > limit:
break
seq.append((h,nfactors(h,2),nfactors(h,3),nfactors(h,5)))
leftmost = max([k for h,i,j,k in seq])
rightmost = max([j for h,i,j,k in seq])
leftwidth = int(0.5 + log(5) * leftmost * xscale + radius + margin)
rightwidth = int(0.5 + log(3) * rightmost * xscale + radius + margin)
width = leftwidth + rightwidth
height = int(0.5 + log(limit) * yscale + 2*(radius + margin))
def place(h,i,j,k):
# logical coordinates
x = j * log(3) - k * log(5) + i * skew
y = log(h)
# physical coordinates
x = (x*xscale) + leftwidth
y = (-y*yscale) + height - radius - margin
return (x,y)
print '''<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" width="%d" height="%d">''' % (width,height)
print ' <g style="fill:none;stroke:#ffaaaa;">'
l = 1
base = 1
while l <= limit:
y = -yscale*log(l) + height - radius - margin
print ' <path d="M0,%0.2fL%d,%0.2f"/>' % (y,width,y)
l += base
if l == 10*base:
base = l
print " </g>"
print ' <g style="fill:none;stroke-width:1.5;stroke:#0000cc;">'
def drawSegment(p,q):
x1,y1=p
x2,y2=q
print ' <path d="M%0.2f,%0.2fL%0.2f,%0.2f"/>' % (x1,y1,x2,y2)
for h,i,j,k in seq:
x,y = place(h,i,j,k)
if i > 0:
drawSegment(place(h//2,i-1,j,k),(x,y))
if j > 0:
drawSegment(place(h//3,i,j-1,k),(x,y))
if k > 0:
drawSegment(place(h//5,i,j,k-1),(x,y))
print " </g>"
print ' <g style="fill:#ffffff;stroke:#000000;">'
for h,i,j,k in seq:
x,y = place(h,i,j,k)
print ' <circle cx="%0.2f" cy="%0.2f" r="%d"/>' % (x,y,radius)
# pairs of first value with size: size of that value
fontsizes = {1:33, 5:30, 10:27, 20:24, 100:20, 200:18}
for h,i,j,k in seq:
x,y = place(h,i,j,k)
if h in fontsizes:
print " </g>"
print ' <g style="font-family:Times;font-size:%d;text-anchor:middle;">' % fontsizes[h]
lower = fontsizes[h] / 3.
print ' <text x="%0.2f" y="%0.2f">%d</text>' %(x,y+lower,h)
print " </g>"
print "</svg>"
Тұпнұсқа жүктеу журналы
The original description page was here. All following user names refer to en.wikipedia.
- 2007-03-14 05:08 David Eppstein 1363×809×0 (13167 bytes) A [[Hasse diagram]] of [[divisibility]] relationships among [[regular number]]s up to 400. Inspired by similar diagrams in a paper by Kurenniemi [http://www.beige.org/projects/dimi/CSDL2.pdf].
Captions
Add a one-line explanation of what this file represents
Items portrayed in this file
суреттелген нәрсе
copyright status ағылшын тілі
copyright license ағылшын тілі
Файл тарихы
Файл сол кезде қалай көрінгенін көру үшін күн/уақыт дегенге басыңыз.
| Күн/Уақыт | Нобай | Өлшемдер | Қатысушы | Пікір | |
|---|---|---|---|---|---|
| қазіргі | 03:57, 2010 ж. наурыздың 13 | 1363 × 809 (13 КБ) | wikimediacommons>David Eppstein | Fix fonts |
Файл қолданылуы
Бұл файлды мына бет қолданады: