gives Minkowski's question mark function
.
MinkowskiQuestionMark
gives Minkowski's question mark function
.
Details
- Mathematical function, suitable for both symbolic and numeric manipulation.
- For a real number
with continued fraction representation
, the Minkowski's question mark function equals
. - For certain arguments, MinkowskiQuestionMark automatically evaluates to exact values.
- MinkowskiQuestionMark can be evaluated to arbitrary numerical precision.
- MinkowskiQuestionMark automatically threads over lists.
Examples
open all close allBasic Examples (2)
Evaluate MinkowskiQuestionMark at a quadratic irrational number:
MinkowskiQuestionMark[(Sqrt[3] - 1/2)]Plot MinkowskiQuestionMark over the unit interval:
Plot[MinkowskiQuestionMark[x], {x, 0, 1}]Scope (14)
Numerical Evaluation (6)
MinkowskiQuestionMark[0.123456]MinkowskiQuestionMark[2]MinkowskiQuestionMark[1 / 3]Evaluate at quadratic irrational numbers:
MinkowskiQuestionMark[(1 + Sqrt[5]/7)]N[MinkowskiQuestionMark[Pi], 20]Compute the elementwise values of an array:
MinkowskiQuestionMark[{{1 / 2, -1}, {-5 / 3, 1 / 2}}]Or compute the matrix MinkowskiQuestionMark function using MatrixFunction:
MatrixFunction[MinkowskiQuestionMark, {{1 / 2, -1}, {-5 / 3, 1 / 2}}]//FullSimplifyFunction Properties (8)
MinkowskiQuestionMark is defined for all real numbers:
FunctionDomain[MinkowskiQuestionMark[x], x]Its domain is restricted to real inputs:
FunctionDomain[MinkowskiQuestionMark[x], x, Complexes]MinkowskiQuestionMark achieves all real values::
FunctionRange[MinkowskiQuestionMark[x], x, y]FunctionSurjective[MinkowskiQuestionMark[x], x]Plot[{MinkowskiQuestionMark[x], 1}, {x, -2, 2}]MinkowskiQuestionMark is injective:
FunctionInjective[MinkowskiQuestionMark[x], x]Plot[{MinkowskiQuestionMark[x], 1}, {x, -2, 2}]MinkowskiQuestionMark has no discontinuities:
FunctionDiscontinuities[MinkowskiQuestionMark[x], x]However, it is singular everywhere:
FunctionSingularities[MinkowskiQuestionMark[x], x]MinkowskiQuestionMark is nondecreasing:
FunctionMonotonicity[MinkowskiQuestionMark[x], x]MinkowskiQuestionMark is neither non-negative or non-positive:
FunctionSign[MinkowskiQuestionMark[x], x]MinkowskiQuestionMark is neither convex nor concave:
FunctionConvexity[MinkowskiQuestionMark[x], x]TraditionalForm formatting:
MinkowskiQuestionMark[x]//TraditionalFormApplications (3)
Enumeration of rational numbers from the unit interval, based on the binary representation of the ordinal number:
RankedRational[n_Integer ? Positive] := Block[{dig = IntegerDigits[n, 2], avec, cf},
avec = Reverse[Pick[Range[Length[dig] - 1, 0, -1], dig, 1]];
cf = ConstantArray[0, Length[avec] + 1];
cf[[3 ;; -1]] = Differences[avec];
cf[[-1]] += 1;
cf[[2]] = avec[[1]] + 1;
cf//FromContinuedFraction
]First few rational numbers, according to the chosen enumeration strategy:
Table[RankedRational[n], {n, 1, 16}]Plot the cumulative distribution function of so constructed rationals:
Plot[CDF[EmpiricalDistribution[Table[RankedRational[n], {n, 2 ^ 10}]], x], {x, 0, 1}, Evaluated -> True]Compare it with the Minkowski's question mark function:
Show[Plot[MinkowskiQuestionMark[x], {x, 0, 1}, PlotStyle -> Directive[Thick, Dashed, Red]], %]An unstable fixed point of the Minkowski's question mark function:
x = 0.4203723394232230756409930066462218739491898666006119;MinkowskiQuestionMark[x] - xNest[MinkowskiQuestionMark, {x - 10^-45, x + 10^-45}, 23]Build a continued fraction expansion of a rational number:
cf = ContinuedFraction[53 / 117]AlternatingTotal[v_ ? VectorQ] := Total[v (-1) ^ Range[0, Length[v] - 1]]First[cf] + 2AlternatingTotal[1 / 2 ^ Accumulate[Rest[cf]]]Compare to the built‐in function:
MinkowskiQuestionMark[53 / 117]Properties & Relations (2)
The Minkowski's question mark function satisfies reflection identity
:
Plot[{MinkowskiQuestionMark[x], 1 - MinkowskiQuestionMark[1 - x]}, {x, -1, 2}, PlotStyle -> {Thickness[0.025], Thickness[0.008]}, PlotLegends -> "Expressions"]For
the function also satisfies
:
Plot[{MinkowskiQuestionMark[x / (1 + x)], MinkowskiQuestionMark[x] / 2}, {x, 0, 1}, PlotStyle -> {Thickness[0.025], Thickness[0.008]}, PlotLegends -> "Expressions"]MinkowskiQuestionMark satisfies
for adjacent elements
and
of a Farey sequence:
MovingMap[Mean, MinkowskiQuestionMark[FareySequence[6]], Quantity[2, "Events"]]MovingMap[(Total[Numerator[#]]/Total[Denominator[#]])&, FareySequence[6], Quantity[2, "Events"]]//MinkowskiQuestionMark% == %%Related Guides
History
Text
Wolfram Research (2014), MinkowskiQuestionMark, Wolfram Language function, https://reference.wolfram.com/language/ref/MinkowskiQuestionMark.html.
CMS
Wolfram Language. 2014. "MinkowskiQuestionMark." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/MinkowskiQuestionMark.html.
APA
Wolfram Language. (2014). MinkowskiQuestionMark. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/MinkowskiQuestionMark.html
BibTeX
@misc{reference.wolfram_2026_minkowskiquestionmark, author="Wolfram Research", title="{MinkowskiQuestionMark}", year="2014", howpublished="\url{https://reference.wolfram.com/language/ref/MinkowskiQuestionMark.html}", note=[Accessed: 13-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_minkowskiquestionmark, organization={Wolfram Research}, title={MinkowskiQuestionMark}, year={2014}, url={https://reference.wolfram.com/language/ref/MinkowskiQuestionMark.html}, note=[Accessed: 13-June-2026]}