问题描述: 这是一个比较经典的问题,棋盘上有8x8共64个格子,要求将八个皇后放置到棋盘上,同时满足任意两个皇后不同行,不同列,并且不位于同一斜线上(45度和135度的斜线),这个问题采用的是回溯法解决的,下述代码是经过学习研究别人的代码得到。代码如下:#include <iostream>#include <stdlib.h>#include <math.h>using namespace std;int position[9];char map[9][9];int sum=0;bool Place(int x,int row){ for(int i=1; Read More
哦,今天用java做了一下生产者、消费者问题,感觉代码有点脑残,不过希望分享出来起到抛砖引玉的目的,感觉这个程序不太令人满意的地方是:1)生产者必须全部生产完毕(10个)后,消费者才可以消费。2)消费者必须全部消费完毕(10个)后,生产者才可以生产。程序段一:class Q{ String name; int num=0; int size=10;}class Producer implements Runnable{ Q q; Producer(Q q) { this.q = q; this.q.name="producer"; ... Read More
问题描述: 生产者进行生产,将生产的产品放入缓冲区;消费者从缓冲区中取出产品进行消费;当缓冲区已经放满产品时,生产者应该暂停生产,等待缓冲区中腾出空间来存放生产出来的产品;当缓冲区为空时,消费者不可以从缓冲区取产品拿来消费,必须等待生产者生产过后才能从缓冲区中取出产品来消费。实现过程中用到了size和n两个变量,size表示缓冲区的大小,n表示当前缓冲区中产品的数目,这段代码实现了互斥访问临界变量,并且生产者不必待消费者消费完缓冲区中全部产品后才进行生产,同时消费者也不必等待生产者放满缓冲区后才进行消费,是对前一次代码的改进。代码实现如下:class Q{ String name; ... Read More