2012-01-16 32 views
0

我試圖爲以下操作的有理數生成一個選擇題集:加法,減法,乘法和除法。如何使用Mathematica爲有理數生成多選作業集?

喜歡的東西

01)的2/3 + 5/4是值:1)b)中c)中d)E)

02)的2/3 * 5/8的值是:a)b)c)d)e)

等約25個問題。我如何使用Mathematica來做到這一點?

編輯

  1. 我得到一個錯誤,當我嘗試運行Yoda的代碼,並不能找出原因。這裏的錯誤消息:

    http://img829.imageshack.us/img829/8463/imagen1em.jpg

  2. 下面是該最終輸出一個小樣,我想的是: http://img827.imageshack.us/img827/7450/imagen2hn.jpg

  3. 數代是好的,但如果他們在會更好隨機間隔-100 < x < 100

+1

我不完全知道你是問什麼。你想隨機生成一個處理分數數學的問題集嗎? – rcollyer 2012-01-16 03:24:12

回答

2

你能直接在網格中輸入嗎?像這樣:(你沒有說你的a,b,c,d應該是什麼,如果你澄清了這一點,我可以更新它,我認爲你會有一些選擇從某個地方選擇。 。

enter image description here

t1 = "the value of "; 
t2 = " is : a) b) c) d)"; 
a = {"1/2", "3/4", "8/9", "4/3"}; 
b = {"5/6", "5/6", "9/5", "7/9"}; 
choice = {"a) b) c) d)"}; 
r = Table[{i, t1, a[[i]] + b[[i]], t2}, {i, 1, Length[a]} ]; 
r = Insert[r, {" mid term exam", SpanFromLeft}, 1]; 
r = Insert[r, {" no cheating allowed", SpanFromLeft}, -1]; 
Grid[ 
r, 
Frame -> {1 -> True, All}, Spacings -> {.4, 1}, Alignment -> Center 
] 

編輯(1)

這裏也是使用Mathematica生成代數問答題演示可能是這樣可以給OP更多的想法:

http://demonstrations.wolfram.com/AlgebraQuiz/

+0

感謝您的回覆 你寫的代碼並不適合我想要做的事情,但是謝謝,只是給了我一些看起來無論如何ideas.de編輯我的問題上面,這就是我 看看你告訴我的鏈接,但它是不是我想要的,我以前見過的所有的 – zeroo 2012-01-16 18:28:58

3

我的解釋與rcollyer的解釋是一樣的 - 你想隨機生成25對有理數,並且4個選項是每對上的{+,-,*,/}的結果,但是按照洗牌順序。然後問題是在相應的分數對上隨機選擇一個操作。

爲了做到這一點,我強烈建議閱讀Sasha's question on generating uniformly distributed rational numbers with an upper bound on the denominator的答案。具體來說,功能RandomFarey,這是Sasha的btilly的答案的實現。我建議你這樣做,而不是更直觀的Rationalize[RandomReal[...]]方法,因爲如果你爲分數設置作業,這可能是小學/中學階段的課程,你可能不想要任何有理數,這種明顯的方法可能會拋出(例如,{273/391, 193/239},這可能可能有點太多,取決於水平)。

現在我們有了有理數的生成函數,所有需要做的就是生成它們,創建答案選擇,洗牌,創建一組隨機的問題並將它們整齊排列。這是一種做法。

makeHomework[n_Integer, denominator_Integer] := 
Module[{rationalPairs = RandomFarey[denominator, 2 n]~Partition~2, 
    operators = {Plus, Subtract, Times, Divide}, 
    randomOp := RandomChoice[{"+", "-", "\[Times]", "\[Divide]"}], 
    choiceList, questionList}, 

    choiceList = Outer[Apply, operators, rationalPairs, 1]; 
    questionList = #1 <> randomOp <> #2 <> "=" & @@@ 
    Map[ToString[# // TraditionalForm] &, rationalPairs, {2}]; 

    Grid[[email protected]{questionList, 
    [email protected][Labeled, {#, {"(a)", "(b)", "(c)", "(d)"}}] & /@ 
     [email protected]}, 
    Spacings -> {0, 1}] 
    ] 

例如,評估makeHomework[5, 10]給出:

enter image description here

這可能需要你的方式出現90%。我真的很忙,所以有幾件事我沒有做,但我希望你或其他人能解決它。他們大多是微不足道的。

  1. 我沒有考慮整數。如果發電機要將其中一臺投入使用,這些將會弄亂佈局(那個佈局會稍微偏離線路)。
  2. 我忘了序列號
  3. 標籤尺寸要小一些(或者反過來,這個數字應該更大)
  4. 其他多餘的裝飾和prettifications
+0

首先非常感謝你爲應對 對不起我的英語,也許不是全部,使用谷歌翻譯, 還不是很清楚如何將此頁作品以及如何操作 評論 – zeroo 2012-01-16 16:59:27

+0

看到我的問題以上版本.. 對不起,我甚至沒有在這裏管理 – zeroo 2012-01-16 18:25:27

+0

@zeroo我已格式化您的問題和編輯。 「RandomFarey」的代碼在Sasha的問題中,我在我的答案中鏈接了,並且您還需要評估'cfPairs'和'cfGCD'以使用'RandomFarey'。一旦你這樣做,它應該爲你評估。 – abcd 2012-01-16 19:14:52

相關問題