If a Pokemon is caught by multiple people, is it the same Pokemon with the same IVs/stats?
I have tried it three times, and that seem to the case: the CP and HP are different because the two players are at different levels and one Pokemon has a low CP like 10 or 14, and the other Pokemon has a high CP such as 384.
But if I check for the IV and Perfection of the CP 384 Pokemon, it gave me one number, and if I spend stardust and candies to power up the CP 10 Pokemon, I do get the same Perfection number as the other player's Pokemon.
So are they the same Pokemon with the identical IV and Perfection number? If that is the case, one way we can save stardust and candies is to catch 2 or 3 Pokemons by 3 players, and then just run through the IV calculator using "Calculate" for the first Pokemon, and use "Refine" for the other 2 Pokemons. Then in this case, we may be able to save stardust which sometimes would be 3000 or 3500 stardust.
Solution 1:
While Kaz Wolfe's answer may have been true at one point, it is no longer the case. While with friends today, we found a Bayleef. All three of us caught the Bayleef, but each Bayleef had different appraisal results.
Thus, not only were the Bayleef's levels different, they had much different IVs, as well.
Solution 2:
Note: As Niantic has altered their game and allowed it to evolve, this answer is no longer accurate for current versions of the game. Please see Vemonus' answer for the up to date version. This answer exists for archival purposes only.
When a Pokemon spawns, every person who catches it gets the exact same IV Pokemon.
The difference you're noting with CPs and Levels is because the game will only give the exact same Pokemon to two people with the same level. Otherwise, the Pokemon's Level will be somewhat randomized.
As these Pokemon are all equivalent by IV, you can calculate IVs using each unique Pokemon caught as a single data point, although you may not actually get an exact value with these data points in mind.
Similarly, one of the key features of most algorithms is the "leveling" method. Some algorithms will spit back at this problem, but others should work without much issue.