so I'm self-studying quantum computing and have a question about the proposed classical solution to the Deustch-Jozsa problem.
So given your function $f: \{0,1\}^n \rightarrow \{0,1\}$ say you were to define a linear map $F: \mathbb C(\{0,1\}^n) \cong \mathbb C^{2n} \rightarrow \mathbb C$ by sending $x \mapsto (-1)^{f(x)}$. Now the oracle you use for the classical solution is an oracle for $F$ which is derived from your oracle for $f$. It only takes 1 call to this oracle to determine if $f$ is balanced or constant, using a similar argument to the quantum case.
My question is why isn't this a valid classical solution? To me, when you implement a quantum oracle for $f$ you're basically doing the same thing I am doing here when constructing $F$ - i.e. you put all the 'magic' into this new oracle and hide it using the black box, and then claim the number of calls to this new oracle only needs to be one. Which is true basically by design of the oracle. But that seems like cheating to me and I can't see why the example I gave is any different to the quantum solution and so I don't see why the quantum case gives a speed up.
Edit: Changed the definition of $F$ from $x \mapsto (-1)^{f(x)} x$.
Edit 2: From discussions in the comments I think I can clarify my issue more coherently and without reference to Deutsch-Jozsa. I think it comes down to, from a complexity perspective, why it's valid to compare a classical solution to a quantum solution with them both using different oracles. To me this comparison isn't useful because we have to use different oracles and since it cannot be made in the real world the idea that one is faster than the other has no meaning.