def genCommonD(self, imp=0): ss = [] if imp: commonD = RC([2, 3, 4, 5, 8, 10, 12]) selN = RI(2, min(commonD * 10, 36)) else: commonD = RC([5, 8, 10, 12]) selN = RI(2, commonD - 1) i = 0 while i < 5: i += 1 n = selN while n == selN: if imp: n = RI(1, min(commonD * 10, 36)) else: n = RI(1, commonD) ans = 0 if n < selN: ans = 1 ss.append((str(ans), core.frtContent(n, commonD))) return (core.frtContent(selN, commonD), ss)
def generateImproper(self): ss = [] FI = items.FractionItem([]) FI.denominators = [2, 3, 4, 5, 8, 10, 12] for d in FI.denominators: FI.unreduced[d] = [] for n in range(1, 37): if F(n, d) < 10.01: FI.unreduced[d].append((n, d)) sel = FI.get() selF = F(sel[0], sel[1]) i = 0 while i < 5: f = None ans = RI(0, 1) if ans == 1: f = FI.getSmaller(selF) else: f = FI.getLarger(selF) if f: ss.append((str(ans), core.frtContent(f[0], f[1]))) i += 1 return (core.frtContent(sel[0], sel[1]), ss)
def genBench(self, imp=0): ss = [] v = [2, 3, 4, 5, 8, 10, 12] bd = RI(1, 3) + 1 val = F(1, bd) i = 0 while i < 5: i += 1 n = 1 d = bd while n == 1 and d == bd: d = RC(v) if imp: n = RI(1, min(d * 10, 36)) else: n = RI(1, d) ans = 0 if F(n, d) < val: ans = 1 ss.append((str(ans), core.frtContent(n, d))) return (core.frtContent(1, bd), ss)
def genBench(self, imp=0): ss = [] v = [2, 3, 4, 5, 8, 10, 12] bd = RI(1, 3) + 1 val = F(1, bd) i = 0 while (i < 5): i += 1 n = 1 d = bd while (n == 1 and d == bd): d = RC(v) if (imp): n = RI(1, min(d * 10, 36)) else: n = RI(1, d) ans = 0 if (F(n, d) < val): ans = 1 ss.append((str(ans), core.frtContent(n, d))) return (core.frtContent(1, bd), ss)
def generateImproper(self): ss = [] FI = items.FractionItem([]) FI.denominators = [2, 3, 4, 5, 8, 10, 12] for d in FI.denominators: FI.unreduced[d] = [] for n in range(1, 37): if (F(n, d) < 10.01): FI.unreduced[d].append((n, d)) sel = FI.get() selF = F(sel[0], sel[1]) i = 0 while (i < 5): f = None ans = RI(0, 1) if (ans == 1): f = FI.getSmaller(selF) else: f = FI.getLarger(selF) if (f): ss.append((str(ans), core.frtContent(f[0], f[1]))) i += 1 return (core.frtContent(sel[0], sel[1]), ss)
def genCommonD(self, imp=0): ss = [] if (imp): commonD = RC([2, 3, 4, 5, 8, 10, 12]) selN = RI(2, min(commonD * 10, 36)) else: commonD = RC([5, 8, 10, 12]) selN = RI(2, commonD - 1) i = 0 while (i < 5): i += 1 n = selN while (n == selN): if (imp): n = RI(1, min(commonD * 10, 36)) else: n = RI(1, commonD) ans = 0 if (n < selN): ans = 1 ss.append((str(ans), core.frtContent(n, commonD))) return (core.frtContent(selN, commonD), ss)
def generate(self): line = (("0", core.strContent(0)), ("0.25", core.strContent(0.25)), ("0.5", core.strContent(0.5)), ("0.75", core.strContent(0.75)), ("1", core.strContent(1))) #line = (("0", core.strContent(0)), ("0.5", core.strContent(0.5)), ("1", core.strContent(1))) questions = [] prev = (0, 0) val = (0, 0) i = 0 while (i < 20): while (val[0] == prev[0] and val[1] == prev[1]): val = self.valid.get() sVal = str((val[0] * 1.0) / val[1]) if (len(sVal) > 5): sVal = sVal[0:5] questions.append((sVal, core.frtContent(val[0], val[1]))) i += 1 val = prev return [line, questions]
def generateProper(self): ss = [] FI = items.FractionItem([2, 3, 4, 5, 8, 10, 12]) sel = FI.get() selF = F(sel[0], sel[1]) i = 0 while i < 5: f = None ans = RI(0, 1) if ans == 1: f = FI.getSmaller(selF) else: f = FI.getLarger(selF) if f: ss.append((str(ans), core.frtContent(f[0], f[1]))) i += 1 return (core.frtContent(sel[0], sel[1]), ss)
def generateProper(self): ss = [] FI = items.FractionItem([2, 3, 4, 5, 8, 10, 12]) sel = FI.get() selF = F(sel[0], sel[1]) i = 0 while (i < 5): f = None ans = RI(0, 1) if (ans == 1): f = FI.getSmaller(selF) else: f = FI.getLarger(selF) if (f): ss.append((str(ans), core.frtContent(f[0], f[1]))) i += 1 return (core.frtContent(sel[0], sel[1]), ss)
def genCommonN(self, imp=0): ss = [] v = [2, 3, 4, 5, 8, 10, 12] if imp: commonN = RI(1, 20) else: commonN = RI(1, 4) v = v[commonN - 1 :] selD = RC(v) v.remove(selD) i = 0 while i < 5: i += 1 d = RC(v) ans = 0 if d < commonN: ans = 1 ss.append((str(ans), core.frtContent(commonN, d))) return (core.frtContent(commonN, selD), ss)
def genCommonN(self, imp=0): ss = [] v = [2, 3, 4, 5, 8, 10, 12] if (imp): commonN = RI(1, 20) else: commonN = RI(1, 4) v = v[commonN - 1:] selD = RC(v) v.remove(selD) i = 0 while (i < 5): i += 1 d = RC(v) ans = 0 if (d < commonN): ans = 1 ss.append((str(ans), core.frtContent(commonN, d))) return (core.frtContent(commonN, selD), ss)
def generate(self): subset = [] player = self.validPlayer.get() while(player[0] == self.prev[0] and player[1] == self.prev[1]): player = self.validPlayer.get() fCompare = player[0] * 1.0 / player[1] i = 0 while(i < 4): f = RI(0, 1) f1 = 0 f2 = len(self.valid[f]) - 1 while(f1 == 0 and f2 == len(self.valid[f]) - 1): f1 = RI(0, len(self.valid[f]) - 2) f2 = RI(f1 + 1, len(self.valid[f]) - 1) f1 = self.valid[f][f1] f2 = self.valid[f][f2] if(f1 == fCompare or f2 == fCompare): continue ans = 'u' if(fCompare < f1): ans = '0' elif(fCompare < f2): ans = '1' else: ans = '2' if(self.prevA == ans and RI(0, 8) > 2): continue subset.append((ans, core.strContent(str(f1)), core.strContent(str(f2)))) self.prev = player self.prevA = ans i += 1 return (core.frtContent(player[0], player[1]), subset)
def generate(self): line = (("0", core.strContent(0)), ("0.25", core.strContent(0.25)), ("0.5", core.strContent(0.5)), ("0.75", core.strContent(0.75)), ("1", core.strContent(1))) #line = (("0", core.strContent(0)), ("0.5", core.strContent(0.5)), ("1", core.strContent(1))) questions = [] prev = (0, 0) val = (0, 0) i = 0 while(i < 20): while(val[0] == prev[0] and val[1] == prev[1]): val = self.valid.get(); sVal = str((val[0] * 1.0) / val[1]) if(len(sVal) > 5): sVal = sVal[0:5] questions.append((sVal, core.frtContent(val[0], val[1]))) i += 1 val = prev return [line, questions]
def formatSelector(self, s): if(self.mixed and s[0] > s[1]): if(not self.improper or RI(0,1)): return core.frtContent(str(s[0] - s[1]), str(s[1]), "1") return core.frtContent(str(s[0]), str(s[1]))