I don’t think this problem has an objectively correct answer.
It depends on the reason because of which we keep track of the flower.
There are edge cases that haven’t been listed yet where even our human intuition breaks down:
What if we teleport the flower Star-Trek style? Is the teleported flower the original flower, or ‘just’ an identical copy?
The question is also related to the Ship of Theseus.
If we can’t even solve the problem in real-life because of such edge cases, then it would be dangerous to attempt to code this directly into a program.
Instead, I would write the program to understand this: Pragmatically, a lot of tasks get easier if you assume that abstract objects / patterns in the universe can be treated as discrete objects. But that isn’t actually objectively correct. In edge cases, the program should recognize that it has encountered an edge case, and the correct response is neither Yes or No, but N/A.
I’d distinguish between “there isn’t an objectively correct answer about what the flower is” and “there isn’t an objectively correct algorithm to answer the question”. There are cases where the OP method’s answer isn’t unique, and examples of this so far (in the other comments) mostly match cases where human intuition breaks down—i.e. the things humans consider edge cases are also things the algorithm considers edge cases. So it can still be the correct algorithm, even though in some cases the “correct” answer is ambiguous.
I don’t think this problem has an objectively correct answer.
It depends on the reason because of which we keep track of the flower.
There are edge cases that haven’t been listed yet where even our human intuition breaks down:
What if we teleport the flower Star-Trek style? Is the teleported flower the original flower, or ‘just’ an identical copy?
The question is also related to the Ship of Theseus.
If we can’t even solve the problem in real-life because of such edge cases, then it would be dangerous to attempt to code this directly into a program.
Instead, I would write the program to understand this: Pragmatically, a lot of tasks get easier if you assume that abstract objects / patterns in the universe can be treated as discrete objects. But that isn’t actually objectively correct. In edge cases, the program should recognize that it has encountered an edge case, and the correct response is neither Yes or No, but N/A.
I’d distinguish between “there isn’t an objectively correct answer about what the flower is” and “there isn’t an objectively correct algorithm to answer the question”. There are cases where the OP method’s answer isn’t unique, and examples of this so far (in the other comments) mostly match cases where human intuition breaks down—i.e. the things humans consider edge cases are also things the algorithm considers edge cases. So it can still be the correct algorithm, even though in some cases the “correct” answer is ambiguous.