AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

IsPowerOfN

Ein Thema von Wolfgang Mix · begonnen am 23. Okt 2009 · letzter Beitrag vom 26. Okt 2009
Antwort Antwort
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#1

Re: IsPowerOfN

  Alt 24. Okt 2009, 11:51
wenn es um integer geht, dann sollte der richtige ansatz[tm] sein:

iterativ solange alle potenzen der basis berechnen, bis man entweder den zielwert trifft, größer wird als der zielwert oder einen overflow erzeugt. treffer bedeutet dabei, dass es eine potenz ist, die beiden anderen fälle, dass es keine potenz ist.

spezielle basen wie negative, null und eins sollte man dabei aussortieren, bevor man anfängt. für andere basen terminiert das ganze nach höchstens 32 bis 64 schritten, weil 2^32 bzw 2^64 die größten integer-werte darstellen.

das ganze ist unglaublich präzise, da mit integern gerechnet wird. darüber hinaus ist es relativ schnell, wenn von einem "normalen mix" von basen und zielwerten ausgegangen werden kann, da nur integer multipliziert, verglichen und gesprungen wird. alles operationen die billig und exakt sind verglichen mit allem was nur nach fließkomma, division oder logarithmus klingt.

meine bescheidene meinung.

wenn fließkomma unterstützt werden soll, sieht die sache anders aus (und deutlich schlechter/komplizierter) da müsste man nochmal sehr gründlich drüber nachdenken, ich verkneife mir hier eine prognose...

also: worum gehts genau?
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz