下面一段程序,请问大佬若干问题。
mathematica吧
全部回复
仅看楼主
level 3
zglazylazy 楼主
研究了MMA许久了(大约3个月),看了多本书。无奈人老眼花,多个问题无法解决。(对于高手应当不难)
下面程序(意图为每个学生出一道随机题目,并计算结果),有以下疑惑请高手解决:
1,list里面字符串如何对应位置相加?(当前程序,应当是在相乘 )
2,list里面的公式如何计算它的值?
3,MMA里面的求极限符号,用字符串表达时,位置会混乱。(如何理顺位置?)
ClearAll;
xuehao = {"01", "02", "03", "04"}
xingming = {"甲", "乙", "丙", "丁"}
renshu = Length[xuehao];
suijizhengshu1 = Flatten[ RandomInteger[{2, 9}, {1, renshu}], 1];
diyiti = PolynomialForm[
\!\(\*UnderscriptBox[\(lim\), \(x -> \[Infinity]\)]\)((
x \[Minus] suijizhengshu1)/x)^(x + 3), TraditionalOrder -> True]
diyiti = Flatten[diyiti]
daan = Evaluate[diyiti]
timu = xuehao xingming diyiti
daan = xuehao xingming daan
Export["D:\\试题.pdf" , timu]
Export["D:\\答案.pdf" , daan]
2023年11月23日 07点11分 1
level 3
zglazylazy 楼主
问题1应当是用MapThread[StringJoin,[a,b]] 来解决。打扰了大家。
2023年11月23日 07点11分 3
还得慢慢研究,还是不好使,尤其是三个list连接。
2023年11月23日 08点11分
括号错了……
2023年12月02日 03点12分
@xzcyr 才看到;看的太不仔细了;感谢感谢。
2023年12月08日 11点12分
level 8
我的想法是用 HoldForm 来 hold 住表达式以产生题目,至于答案只要不hold就自然出来了。
ClearAll;
xuehao = {"01", "02", "03", "04"};
xingming = {"甲", "乙", "丙", "丁"};
renshu = Length[xuehao];
suijizhengshu1 = Flatten[ RandomInteger[{2, 9}, {1, renshu}], 1];
diyiti = TraditionalForm[
HoldForm@Limit[((x \[Minus] #1)/x)^(x + 3), x -> Infinity]] & /@
suijizhengshu1;
daan = Limit[((x \[Minus] #1)/x)^(x + 3), x -> Infinity] & /@
suijizhengshu1;
timu = {xuehao , xingming , diyiti} // TableForm
daan = {xuehao, xingming, daan} // TableForm
Export["D:\\试题.pdf", timu]
Export["D:\\答案.pdf", daan]
2023年11月23日 10点11分 5
太棒了!十分感谢!真是好用!我再慢慢体会。
2023年11月23日 10点11分
吧务
level 15
……强烈建议先把基础打好,你这么硬来真就怎么死的都不知道。
姑且说说你这代码有什么问题:
1. 先把下面的帖子看了:
《ClearAll 没有你们想象中的那个作用,请不要想当然!》
tieba.baidu.com/p/7525919546
《有的字母蓝,有的字母黑,你知道为什么吗?你对语法着色有认识吗》
tieba.baidu.com/p/5539694329
2. Limit函数的StandardForm的正确输入方式是Esc键+lim+Esc键,并不是你随便输个lim就行的。具体参看Limit函数的自带帮助的更多信息。
3. 关于Flatten和Evaluate的用法请仔细看帮助,不要想当然。
4. 硬搞字符串拼接没必要,这点@qflwq 已经在5楼展示过了,你非要弄的话就仔细看看StringJoin和ToString还有StringRiffle的帮助。
5. 你可能会想看看NotebookPrint的帮助。
6. 猜猜daan = {xuehao, xingming, daan} // TableForm 这行会导致什么问题?(提示:看第1条。)
下面是个写得尽量基础的修复版本:
xuehao = {"01", "02", "03", "04"};
xingming = {"甲", "乙", "丙", "丁"};
renshu = Length[xuehao];
suijizhengshu1 = RandomInteger[{2, 9}, renshu];
diyiti = Table[
TraditionalForm@Inactive[Limit][((x - i)/x)^(x + 3), x -> \[Infinity]], {i,
suijizhengshu1}]
daan = diyiti // Activate
拼接[a_, b_, c_] := StringJoin@StringRiffle@{a, b, ToString@c}
纵拼接[lst_] := StringJoin@StringRiffle[lst, "\n"]
strtimu = 纵拼接@MapThread[拼接, {xuehao, xingming, diyiti}]
strdaan = 纵拼接@MapThread[拼接, {xuehao, xingming, daan}]
Export["试题.pdf" , strtimu] // SystemOpen
Export["答案.pdf" , strdaan] // SystemOpen
2023年12月02日 04点12分 6
很遗憾,才看到,尽管我经常关注本吧。感谢吧主的教导。之前的程序运行后,还是有很多警告。我再慢慢研究。
2023年12月08日 07点12分
1