Problem z wczytywaniem danych do FFT

0

Dawno nie programowałem w C++ i mam pewien problem. W C jest funkcja getch() i ona w zasadzie załatwiałaby sprawę, ale w C++ jej nie ma (pomijając cin, który jest za wolny dla konkursów wydajności).

Chodzi mi o wczytywanie danych w zadaniu:
http://asd3.tcs.uj.edu.pl/docs/A.html

Jest to mnożenie liczb metodą FFT. Największy problem to wczytywanie danych. Mam pobrać liczby, popakować po kilka, powiedzmy po 7 liczb, zrzutować to na typ complex i zrobić na tym FFT, pomnożyć, zrobić odwrotny FFT i znowu zamienić na ASCII.

I właśnie to wczytywanie i wypisywanie jest tu chyba najtrudniejsze. W zasadzie to chciałbym jeszcze zrobić zawijanie, tzn jak wiadomo w FFT trzeba rozszerzyć dane wejściowe do potęgi dwójki nie mniejszej niż 2 * długość wejścia. Zwykle wypełnia się zerami, czyli np z 5, 6, 8 robi się 5, 6, 8 , 0, 0, 0, 0, 0, a ja chciałbym zawijać i zrobić 5, 6, 8, 5, 6, 8, 5, 6. Gdzieś czytałem, że to ma zmniejszyć błędy precyzji obliczeń.

Jak ktoś ma fajny pomysł na wczytywanie i wypisywanie to pisać ;]

0

Czy nie można rozwiazac tego zadania implementując własne mnożenie pisemne(na pewno gotowe funkcje do przeanalizowania mozesz znalezc w internecie)? Do wczytywania i wypisywania użyc scanfa i printfa.. powinno dac rade

0

Zadanie wymaga złożoności O(n * lg n). Mnożenie pisemne ma złożoność O(n * n), a więc tysiące razy wolniejsze dla danych testowych.

0

W C++ funkcja getch (albo _getch) oczywiście też jest, bo w C++ jest wszystko to co jest w C.
W jakimś konkursie pamiętam padali piszący w C++ (na korzyść piszących we Free Pascalu :-]) bo używali "wypasionych" ale przekombinowanych cin/cout zamiast odpowiedników z C.

Nagłówek <conio.h> i funkcja getch() na pewno działa w Visual C++ 2008, GCC 4.4.2 i Open Watcom 1.8.
IMHO twój problem nie istnieje.

0

OK pomęczyłem googla trochę więcej i jest ;] Sorry za zamieszanie.

http://www.xtremevbtalk.com/archive/index.php/t-211557.html

A nagłówka conio.h nie ma w g++ (przynajmniej nie działa w NetBeansie z Ubuntu Lucid x64).

0

mam takie pytanie, jakiej biblioteki używasz do liczenia fft?

0

Piszę własną tak jak każdy kto robi ten przedmiot.

0

Udało się, napisałem. Więc jeśli ktoś chciałby implementację Iterative-FFT z Cormena przystosowaną do mnożenia dwóch liczb nie większych niż milioncyfrowych to niech wali na PW ;]

1 użytkowników online, w tym zalogowanych: 0, gości: 1