python解越南逆天小学数学题
来源:互联网 发布:聚石塔和阿里云区别 编辑:程序博客网 时间:2024/06/11 17:08
题目来自越南保禄小学三年班,学生需要由上至下、从左到右的顺序,填入1至9的数字,可重复填写,并按先乘除后加减的运算法则,完成整条算式。
题目如果由我自己来做,实在不知道怎么做,只能感叹现在的小学生实在是太厉害(又或者是他们的悲哀呢,毕竟每一个孩子都应该有个快乐童年,而不是被作业困在教室和家里)。 于是就让我来拯救他们吧,代码很简单,不过由于是新学的python,用的可能还是以前学C的思维,当练练手吧。
#python 2.7.9
for i in range(1,10): for j in range(1,10): for k in range(1,10): for l in range(1,10): for m in range(1,10): for n in range(1,10): for o in range(1,10): for p in range(1,10): for q in range(1,10): if(i+13*j/k+l+12*m-n-11+o*p/q-10==66): print i,j,k,l,m,n,o,p,q
但是鉴于python的效率问题,如果你想看完全部是要等很久的,计算时间+打印时间。
所以,建议再用C语言来看看:
#include<stdio.h>int main(){ int i,j,k,l,m,n,o,p,q; int count=0; long NUM=0; float an=0; NUM=9*9*9*9*9*9*9*9*9; for(i=1;i<10;i++) for(j=1;j<10;j++) for(k=1;k<10;k++) for(l=1;l<10;l++) for(m=1;m<10;m++) for(n=1;n<10;n++) for(o=1;o<10;o++) for(p=1;p<10;p++) for(q=1;q<10;q++) if(i+13*j/k+l+12*m-n-11+o*p/q-10==66){ count=count+1; //printf("%d%d%d%d%d%d%d%d%d\n",i,j,k,l,m,n,o,p,q); } an=float(count)/NUM;printf("%d %ld %f",count,NUM,an);return 0;}上面的打印结果:3359844 387420489 0.008672
即,根据题意排列组合总共的情况有387420489种,符合等式的情况有3359844种,在总情况中占0.008672。
0 0
- python解越南逆天小学数学题
- 传说中的越南小学数学题
- Python 小学4年级的数学题
- 小学数学题
- 越南小学题
- 越南三年级数学题
- 越南小学题的解答
- 小学数学题一道
- 一道小学的数学题
- 小学数学题 洛谷p2921
- 小学数学题,看看现在还会做吗?
- 一道小学数学题[状元蹄]
- 坑爹的小学数学题
- hdoj1049 Climbing Worm(小学数学题)
- 一道小学五年级的数学题
- 一个小学数学题引发的血案
- 一道小学数学题,坑死我了!!!
- URAL 1068. Sum (小学数学题)
- python字符串操作
- MyBatis-环境搭建 -01
- 更一般情况下观察曲线的形状
- 计算机网络学习(1)
- 0523周末学习
- python解越南逆天小学数学题
- codeblocks快捷键(转载)
- Floyd-Warshall算法(传递闭包)
- 记住密码真的好吗?
- oracle的【sqlnet.ora】【tnsnames.ora】【listener.ora】三个配置文件
- [NOIP2010] (普及组) 数字统计
- Closest Value in Binary Search Tree
- java学习之路的自我回顾3(类2)
- LVS学习笔记 8 crm实现Mysql高可用集群