新普金娱乐网址


数学隽人是怎样伤心到深的?

艺考,才免是公口中的人生捷径

C 解决百度知道之一个高级中学题

  • 十月 23, 2018
  • 数学
  • 没有评论

今日教学,我带来在儿女等分析讲解一道数学题时,一员同学提出了质疑:“我们需要这么做为,有无来再次好之法门。”我立马可是高兴好一阵,我虽是急需男女的质询,我连无是全能的。

前言

数学 1

  今天看见一道百度知道上发问,是这般的.

自己忽然想到了成千上万年前,那时我上初三,好像是数学课代表,和数学老师关系而好了。在同等浅数学课上,我为早就提出了质疑,结果受骂了千篇一律抛锚。那不行课,老师用了靠近二十分钟也我们讲课一个书,在黑板上写了好多居多(可见这题有多难)。在执教了晚,老师说这个书的全套过程尽管是这么,大家认真看同样收押。

数学 2

自举手说道:“老师,这个开最后结果产生问题,并无是如此的。”

仔细算了瞬间, 花了30min.才整出来了,估计现在回来参加高考,数学及格都悬.有下想做这么的修来啊用,

师愣了瞬间,认真看了一下,不好意思的游说:“最后结果的确怪,我们大家省哪来了问题。”

宪章这些事物发生什么意思,在这种点浪费时间有啊值得的.

自我跟着说:“第二步开始出错,我早就发现了。”原本大温柔的名师突然翻脸:“为什么才不说,我勾勒了那基本上而才说。”

新兴纪念出来,

本身乐着回答:“不敢。”

    开心就吓!

“我是老虎为?会吃人吗?这个会无敢?那您本怎么又敢说了?”老师发怒了。

怀念最多,考虑太多心灵累.我们开心就好.

自乖乖闭上了口,但没非常老师。老师写了同黑板,我打开就让否定了,不炸才大。

 

于是乎老师而于开始认真为大家解析,带在大家又解决问题。又是半节课时间,终于解决了问题。

正文

只是下课时,老师却喋喋不休的拿自身说事,还蕴含挖苦和奚落。我本来不涉及了,何错之有呢?我仅仅只是摆明了一个黑白,没有指向其他情绪,至于这样吗?于是由那之后本人基本未任数学课了,只是自己埋头自学。老师摸我开口了话,班主任找我开过工作,我独自是同一句话:“我会见证明自家好,期末数学我决然首先叫做……”

  第一有 从代码说开来

虽然后来自的数学也真正考了第一,老师也为是于自己道歉,但一直不见了几什么。我好当自习中倒了广大弯路,老师在教学被吗大半矣有担子,我们涉呢又无见面返回最初……

行使的要紧思路是穷举法,穷举完之后,再判断. 思考了瞬间,主要用 char str[5]; 保存之是串. 采用下面函数检测这串

兹我哉为人口师表,当然为知晓老师的难为,也知晓老师的不易于,更体会老师的良苦用心。

是不是是想念使的差

骨子里我们作为教师,很多时段将温馨之身份看得太胜,与学员的求实脱离了。在今日的课上,我不怕特别欣赏质疑我之生,敢于质疑,那就是是来底气的。师不必贤于弟子,弟弟子不必不如师,老师学员都是人,孰能无过。老师以及学员还需要成长,老师和学习者都需进步。

#inclue <stdbool.h>

// 串检测函数
bool 
isaa(char str[], int len)
{
    int i = 0;
    while(++i < len)
        if (str[i] == 'a' && str[i - 1] == 'a') 
            return true;

    return false;
}

俺们数高高在上,只是自我感觉良好而已,学生无肯定请账,我们还无易于走上前学员。我之课堂上,我就是用学生质疑,也常设计于学员可质疑的地。

频率上呢尚无深入整治了,追求能为此便实施了.

自我之课堂需要协调,我之课堂需要活力,我的课堂需要追究,我之课堂需要改造,我的课堂还得质疑……

那么怎么构建这个 char str[5] 呢. 这里原本以
5叠for,这直接pass了,首先一条则, C程序开发一定要是铭记,或者程序员也只要铭记在心

1 /*
2   用不用goto取决你的业务复杂度
3  
4  */
5 
6 // 但是你一定不要用 超过三层的 循环,那种代码写出来后要打自己脸.

.后面采用 递归搞了一晃, 如下

//采用递归算法穷举
void 
dgaa(char str[],int len,int idx, int *psum, int *pcut)
{
    if (len > idx) {
        str[idx] = 'a';
        dgaa(str, len, idx + 1, psum, pcut);

        str[idx] = 'b';
        dgaa(str, len, idx + 1, psum, pcut);

        str[idx] = 'c';
        return dgaa(str, len, idx + 1, psum, pcut);
    }
    ++*psum;
    *pcut += isaa(str, len);
}

末了得 return,因为到此地就是截止了,不克重望下了,否则再计数了. 大家产生好点子可以分享.

顶这边全还备妥当了. 完整代码如下:

#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

// 串检测函数
bool isaa(char str[], int len);

//采用递归算法穷举
void dgaa(char str[], int len, int idx, int *psum, int *pcut);

/*
 上面函数的简化宏, 这里 用法是
 int psum = 0, pcut = 0;
 char str[5];
 int cut = DGAA(str);
 */
#define DGAA(str, sum, cut) \
    dgaa(str, sizeof(str)/sizeof(*str), 0, &sum, &cut)

/*
 * 这里处理一个问题
 *  一个由abc组成的五位字符串,至少包含 一个连续aa的串有多少个.
 *
 */
int main(int argc, char* argv[])
{
    int sum = 0, cut = 0;
    char str[5];
    DGAA(str, sum, cut);

    printf("所要找的所有串:%d个, 至少出现一次aa的串有 %d 个!\n",sum, cut);

    return 0;
}

// 串检测函数
bool 
isaa(char str[], int len)
{
    int i = 0;
    while(++i < len)
        if (str[i] == 'a' && str[i - 1] == 'a') 
            return true;

    return false;
}

//采用递归算法穷举
void
dgaa(char str[],int len,int idx, int *psum, int *pcut)
{
    if (len > idx) {
        str[idx] = 'a';
        dgaa(str, len, idx + 1, psum, pcut);

        str[idx] = 'b';
        dgaa(str, len, idx + 1, psum, pcut);

        str[idx] = 'c';
        return dgaa(str, len, idx + 1, psum, pcut);
    }
    ++*psum;
    *pcut += isaa(str, len);
}

俺们直接编译链接一下

gcc -g -Wall -o aa.out aa.c

毕竟的运行结果如下:

数学 3

答案是 至少出现一次aa的失误有
79 个.

 

其次局部 从更强观点及析是题材

  采用思路就简的数学集合分析.

1) . abc 组成 长度为 5的串

    一共有 3^5 = 81 x 3 = 243

2) . 没有起了 aa连续的失误个数

  A) 串中从来不a

    2^5 = 32

  B) 串中就发一个a

    首先剩下4只岗位 2^4 =
16 后面 一个a 插入 到    x|x |x |x |x 

    x的位置 有 C(1,5) = 5种,一共有
16 x 5 = 80种

  C) 串中起个别只a  x | x | x |
x 左边x的位置选出2独 插入 aa

    一共有 2^3 x C(4,2) = 8 x 4 x 3 /
2 = 48种

  D) 串中来3单 a  就是这样情况 a | a
| a

    只有 2^2 = 4季种情况

  综上 A,B,C,D 一共有 32 + 80 + 48 + 4
= 112 + 52 = 164种

综上1)
2) 得到至少一个aa连续出现的5位串 个数为

  243 – 164 = 79 种

问题就解决. 欢迎大家给起还抢眼的法子数学分享.

 

后记

   到此处说罢了, 错误是免不了的,提出来一定改. 祝今天大家连好欢乐, 以后的存多一致点走,少一点

欲言又止,关键是开心就是好.O(∩_∩)O哈哈~

相关文章

No Comments, Be The First!
近期评论
    分类目录
    功能
    网站地图xml地图