🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.comp.misc
Article #89

Re: Algorithmus gesucht.

#89
From: Peter Kittel
Date: Tue, 14 Apr 1992 08:08
69 lines
2531 bytes
eckert@immd4.informatik.uni-erlangen.de (Toerless Eckert) writes:
>From article <1992Apr11.181119.10665@wega.rz.uni-ulm.de>, by ORAKEL@rzmain.rz.uni-ulm.de (Framstag):
>> 
>> Aus einer realen Zahl x moechte ich einen Bruch der Form:
>>         
>>      a*sqrt(b)
>>     -----------	    ( sqrt = Quadratwurzel )
>>      c*sqrt(d)
>> 
>> bilden, wobei er moeglichst einfach (gekuerzt) sein sollte.

Wenn das man ueberhaupt eindeutig geht. Wie andere ja schon gesagt haben,
scheint Deine Beobachtung, dass andere Programme das schon koennen, nicht
gut belegbar zu sein. Wir haben immerhin nur einen Eingangswert, Du
willst aber 4 (VIER) Ausgangswerte raushaben, uff.

Also lass mal sehen...

Ich hab das eben mal in AmigaBasic (:-) aus dem Aermel geschuettelt.
Es gibt bestimmt noch elegantere Methoden als diese Brute-Force-Schleifen.

INPUT x
z%=1:n=1
IF x>1 THEN z%=x
z%=z%-1
r=x
WHILE INKEY$=""
  z%=z%+1
  PRINT :PRINT z%
  n%=z%/x:zs%=SQR(z%)
  FOR i%=1 TO zs%
    zs=SQR(i%):z1%=z%/zs
    z=z1%*zs
    PRINT z%;":";z1%;"* SQR(";i%;")"
    ns%=SQR(n%)
    FOR j%=1 TO ns%
      ns=SQR(j%):n1%=z/(ns*x)
      y=z/(n1%*ns)
      r1=ABS((y-x)/x)
      IF r1<r THEN
        ' ggt von z1% und n1% suchen
        z2%=z1%:n2%=n1%:m%=2
        WHILE m%<=z2% AND m%<=n2%
          IF INT(z2%/m%)=z2%/m% AND INT(n2%/m%)=n2%/m% THEN
            z2%=z2%/m%:n2%=n2%/m%
            r1=ABS((z2%*zs/(n2%*ns)-x)/x)
              ELSE
            m%=m%+1
            END IF
          WEND
        PRINT 
        PRINT z2%;"* SQR(";i%;")"
        PRINT n2%;"* SQR(";j%;")";r1
        r=r1
        END IF
      NEXT
    NEXT
  WEND

Bemerkung: In Basic darfst Du die *verschiedenen* Variablen n (real)
und n% (Integer) nebeneinander benutzen, in C musst Du die Namen echt
verschieden machen.

Viel Spass!

-- 
Best regards, Dr. Peter Kittel  // E-Mail to  \\  Only my personal opinions... 
Commodore Frankfurt, Germany  \X/ {uunet|pyramid|rutgers}!cbmvax!cbmger!peterk
                                   or  peterk@public.sub.org
Technical Details
Message-ID: <1992Apr14.080848.14242@public.sub.org>
Path: arc1-ca.pugleaf.net!sparky!uunet!math.fu-berlin.de!fub!public!peterk
References: <1992Apr11.181119.10665@wega.rz.uni-ulm.de> <1992Apr13.164818.16891@informatik.uni-erlangen.de>

Show Full Headers
Complete Article Headers
Newsgroups: de.comp.misc
Path: arc1-ca.pugleaf.net!sparky!uunet!math.fu-berlin.de!fub!public!peterk
From: peterk@public.sub.org (Peter Kittel)
Subject: Re: Algorithmus gesucht.
Organization: Public News & Mailserver, Commodore Germany PM UNIX, Frankfurt
Date: Tue, 14 Apr 92 08:08:48 GMT
Message-ID: <1992Apr14.080848.14242@public.sub.org>
References: <1992Apr11.181119.10665@wega.rz.uni-ulm.de> <1992Apr13.164818.16891@informatik.uni-erlangen.de>
Lines: 69