Web Log di Adrian Florea

"You know you've achieved perfection in design, not when you have nothing more to add, but when you have nothing more to take away." Antoine de Saint-Exupery
posts - 440, comments - 2715, trackbacks - 3944

My Links

Archives

Post Categories

Image Galleries

.RO Blogs

.RO People

.RO Sites

Blogs

Furls

Links

vinCitori

Il teorema di McEliece

Da questo post del mio connazionale Radu Grigore, scopro un bellissimo teorema di McEliece (per la cronaca, Robert McEliece è stato negli anni '60 compagno di dottorato di ricerca con Donald Knuth, vero mostro sacro dell'informatica):

Any continuous strictly increasing function f : R -> R with the inverse g, g(Z) included in Z, has the dual properties:
  • ceiling(f(x)) = ceiling(f(ceiling(x)))
  • floor(f(x)) = floor(f(floor(x)))

OK, adesso so che volete un esempio semplice in C# :-)

System.Math.Sqrt è definita in {double non negativi} con valori in {double non negativi}, è monotona strettamente crescente strettamente ascendente (si dice così?) e per argomenti interi  non negativi la sua inversa fornisce argomenti interi non negativi. Quindi, in base al teorema di McEliece, abbiamo:

  • Math.Ceiling(Math.Sqrt(x)) == Math.Ceiling(Math.Sqrt(Math.Ceiling(x)))
  • Math.Floor(Math.Sqrt(x)) == Math.Floor(Math.Sqrt(Math.Floor(x)))

true, dove x è un double. Oppure, un altro esempio semplicissimo: System.Math.Log10.

Print | posted on lunedì 31 gennaio 2005 15:21 | Filed Under [ Carillon .NET Un po' di numeri ]

Powered by:
Powered By Subtext Powered By ASP.NET