UCE-group / fortnightly-plan

北京化工大学 BUCT-UCE 社团: 编程学习 - 周计划WP,双周计划FP,月计划MP
35 stars 12 forks source link

【WP】2019年冬季-第17周-张巨梩 #364

Open ConnorTomato opened 4 years ago

ConnorTomato commented 4 years ago

1.计算机验证社会科学问题——囚徒困境

三种情款: 1.一人背叛、一人合作:背叛者得5分(背叛诱惑),合作者0分(受骗支付)。 2.二人都合作:各得3分(合作报酬)。 3.二人都背叛:各得1分(背叛惩罚)。

我是图片

20世纪70年代,采用计算机博弈的方法,全球征召计算机实验策略。人们通过输入为反复进行囚徒困境博弈而设计的电脑程序进入比赛。然后每个程序都与其他所有程序进行博弈比赛。在最后积分榜第一的是:“一报还一报”的针对策略,它采取先合作(永远不先背叛对方),若对方背叛,则下局以同样“背叛”牌打出,以此继续。

简单的启示:你活在人群中,你的行为虽然是由你支配的,但是也受和你博弈的人以及组织的影响。当所有局中人选择其最优策略时的策略组合可能对整体来说并不是好的策略,必须考虑每种策略,将损失降到最低。


2.链表

学习的第一个数据结构,抄书抄了3遍,才意识到机械重复是在记忆,这不是一个好策略,于是转变的思路,开始在纸上一步一步用铅笔动态跟着画,了解每一步的目的,之间的逻辑关系,每一个变量做什么了,指针每次循环后当前指针指向那里。

#include<stdio.h>
#include<malloc.h>

struct student {
    long num;
    float score;
    struct student* next;
};

struct student* creatlist() {
    int n;
    struct student* head;
    struct student* p1, * p2;
    head = NULL;
    p1 = p2 = (struct student*)malloc(sizeof(struct student));
    scanf("%ld%f", &p1->num, &p1->score);
    p1->next = NULL;
    while (p1->num!=-1) {
        if (head == NULL)
            head = p1;
        else
            p2->next = p1;
        p2 = p1;
        p1 = (struct student*)malloc(sizeof(struct student));
        scanf("%ld%f", &p1->num, &p1->score);
    }
    p2->next = NULL;
    return head;
}

struct student* del(struct student* head) {
    struct student* p1, * p2;
    long num;
    printf("input num£º");
    scanf("%ld", &num);
    if (head == NULL)
        printf("list is null\n");
    else {
        p1 = head;
        while (p1->num != num && p1->next != NULL){
            p2 = p1;
            p1 = p1->next;
        }
        if (p1->num == num) {
            if (p1 == head) {
                printf("delete node %d %f\n", p1->num, p1->score);
                head = p1->next;
                free(p1);
            }
            else {
                p2->next = p1->next;
                p1->next=NULL;
                printf("delete node %d %f\n", p1->num, p1->score);
                free(p1);
            }

        }
        else
            if (p1->num != num && p1->next == NULL)
                printf("no find delete node£º\n");

    }
    return head;
}
struct student* insert(struct student* head) {
    struct student* p1, * p2, *p3;
    p1 = (struct student*)malloc(sizeof(struct student));
    scanf("%ld%f", &p1->num, &p1->score);
    p2 = head;
    if (head == NULL) {
        head = p1;
        p1->next = NULL;
    }
    else {
        while (p1->num > p2->num&& p2->next != NULL) {
            p3 = p2;
            p2 = p2->next;
        }
        if (p1->num < p2->num)
            if(head==p2){
            head = p1;
            p1->next = p2;
        }
            else {
                p3->next = p1;
                p1->next = p2;
            }
    }
    return 0;
}

void printlist(struct student* head) {
    struct student* p;
    p = head;
    while (p != NULL) {
        printf("%ld %.1f\n", p->num, p->score);
        p = p->next;
    }
}

int main() {
    struct student* creatlist();
    void printlist(struct student* head);
    struct student* del(struct student* head);
    struct student* insert(struct student* head);
    struct student* head;
    printf("start to creat linklist:\n");
    head = creatlist();
    printlist(head);
    printf("start del\n");
    head=del(head);
    printlist(head);
    printf("start insert\n");
    head=insert(head);
    printlist(head);
    return 0;
}

3.学习计划 a.上周学习的AVL,看了二叉搜索树,

AVL的存在是防止树退化为链表,导致搜索效率的降低,而红黑树是对AVL树严苛规则的调整(平衡树要求每个节点的左子树和右子树的高度差至多等于1)。

我是图片 我是图片 b.已经进入备考周了,暂停数据结构的学习,集中注意力备考期末。

思政背完了20道简答题。高数已经订正去年期末试卷。总结知识点

c.《自私的基因》读书笔记还没有二次整理,第三次整理会使用SimpleMind,发现思维导图用来记忆和复习有一定趣味性。


4.学习之外的生活

机会成本:在A与B之间做出一个选择,选择A所要放弃B的最大价值。就像两条世界线,做出决策后必然踏上一条世界线,然而你并不能去说这两个故事谁更好。陈铭老师说过:“我们看过去的方式很暧昧,它取决于你看未来的方式。”

经济学的一个原理就是,你面临权衡取舍。 你的一天有多少价值,你做的事情有多少价值,你要怎么选择做的事情才能价值最大化。 你选择做的事情,比如外出游玩,比如在家睡一天,比如在家看电影一天,比如外出学习,你的机会成本是什么。可能你周末赖在家看了一天的电影,实际上你浪费了通过工作赚1000元的机会,那么这一天的电影实际花销就是1000元。这就是机会成本的意义。