...........................
Invisibile un vento
l'ha apena sfioragia
sospension d'un momento;
e la bola iridessente gera 'ndagia.
{Biagio Marin}
................................................................
Meglio soluzioni sbagliate che risposte esatte.
{Rudi Mathematici}
Ecco il grafo di divisibilità di 252 e quelli di alcuni dei suoi divisori.
Interessante.
Confesso che non conoscevo i grafi di divisibiità, così mi sono documentato, ma a parte Base5 non ho torato molto.
Giusto questo sito che li produce anche in funzione della base https://www.mathsegnale.it/risorse/divisibilitagrafi/
Così mi sono fatto un mio programma in Python
from turtle import *
from math import cos, pi
n = input ('numero? ')
if n == '': n = 7
else: n = int(n)
m = input ('base? ')
if m == '': m = 10
else: m = int(m)
a = 360 / n
b = 90 - a / 2
r = 300
l = 2 * r * cos(pi * b / 180)
p = []
speed(0)
ht()
pu()
rt(90)
fd(r)
lt(90 + a / 2)
pd()
for i in range(n):
p.append(pos())
fd(l)
lt(a)
dot()
color('red')
for i in range(n):
pu()
goto(p[i])
pd()
j = m * i % n
goto(p[j])
if i == j: dot()
Ecco il grafo del 22 in base 10
22.png (22.74 KiB) Visto 2629 volte
SE&O
Ultima modifica di Quelo il dom feb 13, 2022 7:33 pm, modificato 1 volta in totale.
252 non è rappresentabile come somma di tre cubi non negativi, ma lo sono 251 (per esempio: 2³+3³+6³) e 253 (4³+4³+5³).
È invece rappresentabile come somma di tre cubi semplicemente interi, per esempio: 252 = 5³+(-6)³+7³ = 7³+(-4)³+(-3)³ = ...
Grazie del codice, Sergio.
Davide e Riccardo di MATH-segnale sono ottimi divulgatori di matematica e hanno creato diversi bei video per yt.
Ottimo per 504 e 756.
(Bruno)
...........................
Invisibile un vento
l'ha apena sfioragia
sospension d'un momento;
e la bola iridessente gera 'ndagia.
{Biagio Marin}
................................................................
Meglio soluzioni sbagliate che risposte esatte.
{Rudi Mathematici}
DECLARE EXTERNAL SUB grafodiv
!'Il numero di cui si vuole il grafo
LET numero=14
!'Etichette dei numeri sui nodi del grafo: 1=sì, 0=no
LET stampanum=1
CALL grafodiv(numero, stampanum)
END
EXTERNAL SUB grafodiv(numero, stampanum)
!'Disegna il quadro grafico
!'e fissa i parametri
LET cx=0
LET cy=0
LET l=10
SET WINDOW -l,l,-l,l
CLEAR
SET LINE COLOR 8
LET r=l*0.8
SET LINE COLOR 1
SET POINT STYLE 4
OPTION BASE 0
DIM xi(20000)
DIM yi(20000)
SET POINT STYLE 7 !'Il punto è un dischetto
SET LINE WIDTH 2 !'Spessore linea: 1, 2
!'Disegna il cerchio
LET stp=360/numero
SET LINE COLOR 1 !'Linea nera
LET cont=0
!'Eventualmente stampa le etichette dei numeri
FOR t=0 TO numero *stp+stp/2 STEP stp
LET alfa=t*2*PI/360
LET xi(cont)=cx+r*COS(alfa-PI/2)
LET yi(cont)=cy+r*SIN(alfa-PI/2)
PLOT POINTS: xi(cont),yi(cont)
IF stampanum=1 AND cont<numero THEN
LET rtext=r*1.1
LET xtext=cx+rtext*COS(alfa-PI/2)-5/10
LET ytext=cy+rtext*SIN(alfa-PI/2)-5/10
PLOT TEXT,AT xtext,ytext:STR$(cont)
END IF
LET cont=cont+1
NEXT t
FOR i=0 TO numero -1
SET LINE COLOR 1
PLOT LINES: xi(i),yi(i); xi(i+1),yi(i+1)
NEXT i
!'Traccia il grafo
SET LINE COLOR 4 !'Linea rossa
SET LINE WIDTH 1 !'Spessore linea: 1, 2
FOR i=0 TO numero -1
LET md=MOD(i*10,numero )
PLOT LINES: xi(i),yi(i); xi(md),yi(md)
!'Attenzione: se c'è una linea che collega il punto a se stesso
!'traccia il punto rosso e non disegna la linea
IF md=i THEN
SET POINT STYLE 7
SET POINT COLOR 4
PLOT POINTS:xi(md),yi(md)
END IF
NEXT i
END SUB
grafi1.png (27.64 KiB) Visto 2616 volte
grafi2.png (28.22 KiB) Visto 2616 volte
Mancano due cose importanti che prima o poi farò:
1) E' un grafo orientato, perciò bisognerebbe disegnare le punte delle frecce a ogni arco.
2) Sarebbe meglio disegnare anche gli archi che collegano un punto a se stesso.
Nota: il DECIMAL BASIC in modalità "RATIONAL" supera le 1000 cifre. Il numero di cifre è illimitato (fino a superamento memoria dedicata). Solo con operazioni "razionali".
...........................
Invisibile un vento
l'ha apena sfioragia
sospension d'un momento;
e la bola iridessente gera 'ndagia.
{Biagio Marin}
................................................................
Meglio soluzioni sbagliate che risposte esatte.
{Rudi Mathematici}
from turtle import *
from math import cos, pi
def ar():
if n < 100:
lt(90)
begin_fill()
circle(4,360,3)
end_fill()
rt(90)
n = input ('numero? ')
if n == '': n = 7
else: n = int(n)
m = input ('base? ')
if m == '': m = 10
else: m = int(m)
a = 360 / n
b = 90 - a / 2
r = 300
l = 2 * r * cos(pi * b / 180)
p = []
speed(0)
ht()
pu()
rt(90)
fd(r)
lt(90 + a / 2)
pd()
# disegna il poligono
for i in range(n):
p.append(pos())
fd(l)
ar()
lt(a)
dot()
# scrive i numeri
if n < 100:
for i in range(n):
pu()
goto(p[i])
rt(heading())
rt(90)
fd(10)
lt(270+towards(0,0))
fd(20)
write(i, False, 'center', font=('Cambria', 12, 'normal'))
# disegna il grafo
color('red')
for i in range(n):
pu()
goto(p[i])
pd()
j = m * i % n
goto(p[j])
if i == j:
rt(heading())
lt(180+i*360/n)
circle(20)
ar()
else:
rt(heading())
lt(180+towards(p[i]))
ar()
I grafi dei multipli di 11 sono singolari, questo è il 33
Velocissimo e grandioso, Sergio!
Credo che con il DECIMAL si debba costruire un po' di codice per disegnare la punta delle frecce e posizionare con precisione i numeri. C'è anche il problema che in certi casi due archi distinti (andata-ritorno) sono rappresentati con una sola linea, ma forse è giusto così.
A questo punto ho due domande:
1) Com'è il comando per disegnare le frecce (vettori) con la turtle di Python? (non sono riuscito a individuarlo nel codice)
2) Potresti postare un grafo in cui da alcuni nodi esce una linea e ne entra un'altra distinta dalla precedente? Nel grafo del 33 tutte le linee rosse hanno due frecce perché ciascuna di esse rappresenta due archi.
Ciao Gianfranco, grazie per i complimenti.
Python è un linguaggio che ho scoperto di recente, sto facendo pratica.
Non è orientato alla matematica come Decimal Basic, ma in alcuni casi più efficace.
Per le frecce ho disegnato prima il segmento e poi la punta usando il comando circle(), che si usa anche per disegnare poligoni regolari, impostando il parametro steps (subroutine ar() definita all'inizio)
Per gli archi ci devo lavorare, ma è una sfida interessante
Ciao Sergio, scusa, quando parlavo di "archi", non intendevo che fossero necessariamente "curvi". Possono stare rettilinei.
Quando un arco ha una freccia doppia, si può disegnare un segmento unico senza frecce.
Le frecce invece sono quasi indispensabili quando da un nodo escono/entrano due o più archi distinti, per distinguere quello in uscita da quelli in entrata.
Se vuoi, potresti postare il grafo del 14, per esempio, con gli archi rettilinei?