mirror of
https://github.com/open-thought/reasoning-gym.git
synced 2026-04-28 17:29:39 +00:00
feat: Add multiple LaTeX fraction formatting styles to FractionSimplificationDataset
This commit is contained in:
parent
545c9d998b
commit
17b7c3a1b1
1 changed files with 39 additions and 3 deletions
|
|
@ -76,21 +76,57 @@ class FractionSimplificationDataset:
|
||||||
return (simplified_num * factor, simplified_den * factor,
|
return (simplified_num * factor, simplified_den * factor,
|
||||||
simplified_num, simplified_den)
|
simplified_num, simplified_den)
|
||||||
|
|
||||||
|
def _format_fraction(self, num: int, den: int, style: str = "plain") -> str:
|
||||||
|
"""Format a fraction in various styles"""
|
||||||
|
if style == "plain":
|
||||||
|
return f"{num}/{den}"
|
||||||
|
elif style == "latex_inline":
|
||||||
|
return f"${num}/{den}$"
|
||||||
|
elif style == "latex_frac":
|
||||||
|
return f"$\\frac{{{num}}}{{{den}}}$"
|
||||||
|
elif style == "latex_dfrac":
|
||||||
|
return f"$\\dfrac{{{num}}}{{{den}}}$"
|
||||||
|
else:
|
||||||
|
raise ValueError(f"Unknown fraction style: {style}")
|
||||||
|
|
||||||
def __getitem__(self, idx: int) -> dict:
|
def __getitem__(self, idx: int) -> dict:
|
||||||
"""Generate a single fraction simplification task"""
|
"""Generate a single fraction simplification task"""
|
||||||
rng = Random(self.seed + idx)
|
rng = Random(self.seed + idx)
|
||||||
|
|
||||||
num, den, simple_num, simple_den = self._generate_fraction(rng)
|
num, den, simple_num, simple_den = self._generate_fraction(rng)
|
||||||
|
|
||||||
|
# Choose a random style for this question
|
||||||
|
styles = ["plain", "latex_inline", "latex_frac", "latex_dfrac"]
|
||||||
|
style = styles[rng.randint(0, len(styles)-1)]
|
||||||
|
|
||||||
|
# Format both question and answer in the same style
|
||||||
|
question_fraction = self._format_fraction(num, den, style)
|
||||||
|
answer_fraction = self._format_fraction(simple_num, simple_den, style)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
"question": f"Simplify the fraction {num}/{den} to its lowest terms",
|
"question": f"Simplify the fraction {question_fraction} to its lowest terms",
|
||||||
"answer": f"{simple_num}/{simple_den}",
|
"answer": answer_fraction,
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"numerator": num,
|
"numerator": num,
|
||||||
"denominator": den,
|
"denominator": den,
|
||||||
"simplified_numerator": simple_num,
|
"simplified_numerator": simple_num,
|
||||||
"simplified_denominator": simple_den,
|
"simplified_denominator": simple_den,
|
||||||
"reduction_factor": num // simple_num # Will be same as den // simple_den
|
"reduction_factor": num // simple_num, # Will be same as den // simple_den
|
||||||
|
"style": style,
|
||||||
|
"formats": {
|
||||||
|
"question": {
|
||||||
|
"plain": self._format_fraction(num, den, "plain"),
|
||||||
|
"latex_inline": self._format_fraction(num, den, "latex_inline"),
|
||||||
|
"latex_frac": self._format_fraction(num, den, "latex_frac"),
|
||||||
|
"latex_dfrac": self._format_fraction(num, den, "latex_dfrac")
|
||||||
|
},
|
||||||
|
"answer": {
|
||||||
|
"plain": self._format_fraction(simple_num, simple_den, "plain"),
|
||||||
|
"latex_inline": self._format_fraction(simple_num, simple_den, "latex_inline"),
|
||||||
|
"latex_frac": self._format_fraction(simple_num, simple_den, "latex_frac"),
|
||||||
|
"latex_dfrac": self._format_fraction(simple_num, simple_den, "latex_dfrac")
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue