:-D

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

Beitragvon audax » Dienstag 17. Juni 2008, 21:04

Oo

Ihr seid mir suspekt.
Die Implementierung in Perl habe ich geschrieben, weil cofi schlecht über Perl geredet hat ;)

Und die hier in Haskell um mal wieder was in Haskell gemacht zu haben.

Code: Alles auswählen

getMiddle :: String -> Int -> String
getMiddle string len = take len $ drop offset string
    where
    offset = ((length string) - len) `div` 2

myRandom :: Integer -> Int -> Integer
myRandom n 0 = n
myRandom n times = myRandom new (times-1)
    where
    string = show (n*n)
    new = read $ getMiddle string intLength
    intLength = length $ show n
Benutzeravatar
keppla
User
Beiträge: 483
Registriert: Montag 31. Oktober 2005, 00:12

Beitragvon keppla » Dienstag 17. Juni 2008, 21:05

CrzDivi hat geschrieben:Er will sagen, er hat noch nie die Aufgaben wie von seinen Lehrern erledigt. War basic verlangt, hat ers in Pascal gemacht. War Pascal dran, kam er mit C. Und in Englisch hat er immer in die Aufgaben in Latein geschrieben.

Ja, und genau für diesen "Algorithmus" hab ich einen trivialen "exploit" genannt ;)
Dementsprechend verstehe ich nicht, in wiefern sich das auf mein Post bezieht.

Warum nicht doch die Aufgaben Lösen und dann bewusst einen oder mehrere kleine Fehler einbauen. *fg*

Ja, das fände ich Lehrreicher. Hier mein völlig fehlerfreier Vorschlag:

Code: Alles auswählen

def QuadratmittenmethodeNachNeumann():
   print (
     'SWNoIGhhYiBtZWluZSBI'
     'YXVzYXVmZ2FiZW4gY'
     'XVzIGRlbSBQeXRob2'
     '5mb3J1bSBhYmdlc2N'
     'ocmll\nYmVu\n'
   ).decode("base64")

if __name__ == '__main__':
    QuadratmittenmethodeNachNeumann()
Benutzeravatar
cofi
Moderator
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Beitragvon cofi » Dienstag 17. Juni 2008, 21:20

audax hat geschrieben:Die Implementierung in Perl habe ich geschrieben, weil cofi schlecht über Perl geredet hat ;)


Hab ich doch gar nicht :( Zumindest hatte ich das nich vor *g* Ich wollte nur verdeutlichen, dass es nicht "Die Lösung"(TM) gibt.
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Mittwoch 18. Juni 2008, 00:23

audax hat geschrieben:Und die hier in Haskell um mal wieder was in Haskell gemacht zu haben.

Und die hier in Scheme, um mal wieder was in Scheme gemacht zu haben.

Geht sicherlich eleganter, aber ich werd da irgendwann anders weiteroptimieren. ich könnte zum Beispiel mal die Features von PLT 4.0 richtig durchtesten. Aber ich dachte mir "Oho, es ist wieder Zeit irgendwessen Hausaufgaben in abstrusen Sprachen zu lösen"

Damit darf ich nun sagen: Ich kenne den Quellcode. Wo ist nun meine Million? :twisted:
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Karl
User
Beiträge: 252
Registriert: Freitag 29. Juni 2007, 17:49

Beitragvon Karl » Mittwoch 18. Juni 2008, 00:46

Leonidas hat geschrieben:Damit darf ich nun sagen: Ich kenne den Quellcode. Wo ist nun meine Million? :twisted:

1. Unglaubwürdige Aussage (Na gut, eigentlich dürfte man's dir zutraun :p) ohne Beweise.
2. Woher weißt du, dass sich der Titel auf das Posting bezieht? Heißt, wenn man's genau nimmt, könnte damit jeder beliebige Quellcode gemeint sein, da nicht näher auf die Frage eingegangen wird, was wiederum heißt, dass der Threadersteller, nachdem du ihm die Hausaufgaben gemacht hast, sagen könnte, dass du nicht den Quellcode kennst, den er meinte, aber er es trotzdem nett finden würde, seine Hausaufgaben in der nächsten Stunde präsentieren zu können.
3. eine Millionen was? :) Er kann dir eine millionen Byte an Text zukommen lassen.
4. Ja mir ist langweilig und ja ich wollte nur ein weiteres sinnloses Posting beisteuern :)
5. Wäre es cool, jetzt einfach den Pythoncode zu posten? :)
n4p
User
Beiträge: 55
Registriert: Dienstag 10. Juni 2008, 11:05

Beitragvon n4p » Mittwoch 18. Juni 2008, 07:39

Karl hat geschrieben:5. Wäre es cool, jetzt einfach den Pythoncode zu posten? :)

defintiv nicht :P
BlackJack

Beitragvon BlackJack » Mittwoch 18. Juni 2008, 10:08

Und die obligatorische Lösung in Io:

Code: Alles auswählen

#!/usr/bin/env io

BigNum squared := method(self ** 2)
Sequence asBigNum := method(BigNum with(self))

QRandom := Object clone do(
    state ::= BigNum
    length ::= 0
    offset ::= 0
   
    with := method(n,
        result := QRandom clone setState(BigNum with(n))
        result setLength(result state asString size)
        result setOffset(result length >> 1)
    )
   
    next := method(
        state = state squared asString slice(offset, offset + length) asBigNum
    )
)

n := 11111
x := 20

random := QRandom with(n)
x repeat(random next println)
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Beitragvon Rebecca » Mittwoch 18. Juni 2008, 11:57

So, dann will ich auch mal. "Zufalls"zahlen in Emacs:
[code=](defun middle-letters (txt n)
(let ((start (/ (- (length txt) n) 2))
(end (/ (+ (length txt) n) 2)))
(substring txt start end)))

(defun neumann-step (number)
(let ((n (length (number-to-string number))))
(string-to-number (middle-letters (number-to-string (expt number 2)) n))))

(defun neumann-rand (start steps)
(dotimes (i steps start)
(setq start (neumann-step start))))

(neumann-rand 123 3)[/code]
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Benutzeravatar
Hyperion
Moderator
Beiträge: 7471
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Beitragvon Hyperion » Mittwoch 18. Juni 2008, 12:50

Ich warte auf Brainf**k oder zur Not Prolog ;-)
EyDu
User
Beiträge: 4866
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Beitragvon EyDu » Mittwoch 18. Juni 2008, 16:40

Na gut, dann noch eine Prologlösung. Nicht schön, aber selten:

Code: Alles auswählen

square(N, M) :- M is N * N.
heads([H], []).
heads([H|T], [H|K]) :- heads(T, K).
intToList(I, L) :- intToListH(I, T), reverse(T, L).
intToListH(I, [I]) :- I < 10, !.
intToListH(I, [H|Tail]) :- H is I mod 10, R is I // 10, intToListH(R, Tail).
listToInt(L, A) :- reverse(L, R), listToIntH(R, 1, A).
listToIntH([E], F, G) :- E < 10, G is E*F, !.
listToIntH([H|T], F, E) :- A is H*F, FF is F*10, listToIntH(T, FF, C), E is A+C.
center(A, N, A) :- length(A, L), L =:= N, !.
center([H|T], N, B) :- length(T, L), I is L mod 2, I =:= 0, center(T, N, B), !.
center(T, N, B) :- heads(T, K), center(K, N, B), write('test'), !.
main(I, R) :- square(I, X), intToList(I, Z), intToList(X, Y), length(Z, L),
              center(Y, L, A), listToInt(A, R).
Karl
User
Beiträge: 252
Registriert: Freitag 29. Juni 2007, 17:49

Beitragvon Karl » Mittwoch 18. Juni 2008, 17:03

Wie genau ist denn "2. quadriere und wähle die mittleren n Ziffern als neue Zufallszahl" gemeint?
123456789
-> Welche Ziffern muss ich denn jetzt da rausnehmen?
EyDu
User
Beiträge: 4866
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Beitragvon EyDu » Mittwoch 18. Juni 2008, 17:14

Du nimmst dir eine Zahl n. Zum Beispiel 5484.
Dann quadrierst du diese: 30074256.
Die Zufallszahl bildet sich dann aus den viert (weil n vier Zeichen lang ist) mittleren Ziffern des Quadrats: 0742.
Karl
User
Beiträge: 252
Registriert: Freitag 29. Juni 2007, 17:49

Beitragvon Karl » Mittwoch 18. Juni 2008, 17:41

EyDu hat geschrieben:Du nimmst dir eine Zahl n. Zum Beispiel 5484.
Dann quadrierst du diese: 30074256.
Die Zufallszahl bildet sich dann aus den viert (weil n vier Zeichen lang ist) mittleren Ziffern des Quadrats: 0742.

Okay, so hab ich mir das auch gedach, aber nehmen wir mal an, du nimmst 1111 und quadrierst diese Zahl: 1234321
So, welche sind die mittleren Ziffern?
2343 oder 3432?
EyDu
User
Beiträge: 4866
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Beitragvon EyDu » Mittwoch 18. Juni 2008, 17:43

Karl hat geschrieben:So, welche sind die mittleren Ziffern?


Such Dir eben eine der Möglichkeiten aus ;-)
Karl
User
Beiträge: 252
Registriert: Freitag 29. Juni 2007, 17:49

Beitragvon Karl » Mittwoch 18. Juni 2008, 17:59

EyDu hat geschrieben:
Karl hat geschrieben:So, welche sind die mittleren Ziffern?


Such Dir eben eine der Möglichkeiten aus ;-)

Wenn der uns hier schon einen Algorithmus beschreibt, könnte's ja auch eindeutig sein :p Ist ja sonst keiner.
Also *noch einen 6. Punkt gefunden hat, warum Leonidas keine Millionen kriegt* (wobei der 4. und 5. Punkt keine Gründe sind)

Wer ist online?

Mitglieder in diesem Forum: r.barrios