`
hkliya
  • 浏览: 85757 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

国王和100个犯人-

阅读更多
ddddddd
分享到:
评论
57 楼 bugmenot 2010-01-15  
antiwise 写道
for(;;){}这样的语句在JDK src里经常看的到
大概while(true){}每次循环还得判断条件true? 而
第一种直接循环  效率高吧
哈哈

这位大大,两种写法的意义和效果都是完全一样的呀
public class A {
  public void b() { for (;;) ; }
  public void c() { while(true) ; }
}

出来的b和c的字节码是完全一样的
Code:
 Stack=0, Locals=1, Args_size=1
 0:   goto    0
56 楼 hkliya 2010-01-15  
<div class="quote_title">红楼一梦 写道</div>
<div class="quote_div">
<div class="quote_title">hkliya 写道</div>
<div class="quote_div">
<div class="quote_title">红楼一梦 写道</div>
<div class="quote_div">
<div class="quote_title">hkliya 写道</div>
<div class="quote_div">
<p>light=<span class="keyword"><strong><span style="color: #7f0055;">false</span></strong></span><span>; // 等号两边加空格哦</span></p>
<p><span><span class="keyword"><strong></strong></span></span></p>
<p><span><span class="keyword"><strong><span style="color: #7f0055;">private</span></strong></span><span> HashMap&lt;Integer,Prisoner&gt; Prison; //变量名首字母小写哦</span></span></p>
<p><span><span><span class="keyword"><strong></strong></span></span></span></p>
<p><span><span><span class="keyword"><strong><span style="color: #7f0055;">if</span></strong></span><span>(!once&amp;&amp;!light){   // 两个否定很晕哦</span></span></span></p>
<p> </p>
<p><span class="keyword"><strong><span style="color: #7f0055;">for</span></strong></span><span>(</span><span class="keyword"><strong><span style="color: #7f0055;">int</span></strong></span><span> i=</span><span class="number"><span style="color: #c00000;">1</span></span><span>;i&lt;</span><span class="number"><span style="color: #c00000;">100</span></span><span>;i++)   //100这个Magic Number是什么意思哦</span></p>
<p> </p>
</div>
<p>我从c++过来的,留着很多c++的习惯。等号两边加不加空格和变量小不小写这样的细节还的确没注意过。以前写c++从来不管这些。两个否定嘛,也是从c++那边搬来的习惯。我觉得c++的代码简洁,Java代码不如c++灵活。100这个数字,楼主要是不明白那我就没办法了,100个囚犯啊。</p>
</div>
<p><br>两个否定怎么是从C++里来的啊?</p>
<p>还有这个100不是我不知道什么意思,假如现在要换成200个人,那你不是要改很多地方么</p>
</div>
<p>以前写C/C++都是直接写if(a)或if(!a),从来不写if(a!=0)或if(a==0)。Java中我就也这样写了。改成200只要改两个数字,我写的时候没考虑太多扩展性。其实可以把100作为一个静态常量写到Prisoner里。</p>
</div>
<p><br><span class="keyword"><strong><span style="color: #7f0055;">if</span></strong></span><span>(!once&amp;&amp;!light){   </span></p>
<p><span>          light=</span><span class="keyword"><strong><span style="color: #7f0055;">true</span></strong></span><span>;   </span></p>
<p><span>          once=</span><span class="keyword"><strong><span style="color: #7f0055;">true</span></strong></span><span>;   </span></p>
<p><span>}</span></p>
<p> </p>
<p><span>我觉得这样比较容易读:</span></p>
<p><span>if (once || light) {</span></p>
<p><span>         return;</span></p>
<p><span>}</span></p>
<p> </p>
<p><span>light = true;</span></p>
<p><span>once = true;</span></p>
<p><span>你觉得呢</span></p>
55 楼 hkliya 2010-01-15  
liuyu220 写道
灯的实现是一个单例模式,不同意的不要顶

灯是可以坏的哦,坏了是可以换的
所以灯放在院子里,犯人知道院子在哪里就行了
54 楼 liuyu220 2010-01-15  
灯的实现是一个单例模式,不同意的不要顶
53 楼 liuyu220 2010-01-15  
哈哈,看了这么多,我觉得很奇特的一点是:犯人怎么会有灯亮和灯灭的属性?难道犯人自己会亮,自己会灭。
52 楼 antiwise 2010-01-15  
for(;;){}这样的语句在JDK src里经常看的到
大概while(true){}每次循环还得判断条件true? 而
第一种直接循环  效率高吧
哈哈
51 楼 红楼一梦 2010-01-15  
<div class="quote_title">hkliya 写道</div>
<div class="quote_div">
<div class="quote_title">红楼一梦 写道</div>
<div class="quote_div">
<div class="quote_title">hkliya 写道</div>
<div class="quote_div">
<p>light=<span class="keyword"><strong><span style="color: #7f0055;">false</span></strong></span><span>; // 等号两边加空格哦</span></p>
<p><span><span class="keyword"><strong></strong></span></span></p>
<p><span><span class="keyword"><strong><span style="color: #7f0055;">private</span></strong></span><span> HashMap&lt;Integer,Prisoner&gt; Prison; //变量名首字母小写哦</span></span></p>
<p><span><span><span class="keyword"><strong></strong></span></span></span></p>
<p><span><span><span class="keyword"><strong><span style="color: #7f0055;">if</span></strong></span><span>(!once&amp;&amp;!light){   // 两个否定很晕哦</span></span></span></p>
<p> </p>
<p><span class="keyword"><strong><span style="color: #7f0055;">for</span></strong></span><span>(</span><span class="keyword"><strong><span style="color: #7f0055;">int</span></strong></span><span> i=</span><span class="number"><span style="color: #c00000;">1</span></span><span>;i&lt;</span><span class="number"><span style="color: #c00000;">100</span></span><span>;i++)   //100这个Magic Number是什么意思哦</span></p>
<p> </p>
</div>
<p>我从c++过来的,留着很多c++的习惯。等号两边加不加空格和变量小不小写这样的细节还的确没注意过。以前写c++从来不管这些。两个否定嘛,也是从c++那边搬来的习惯。我觉得c++的代码简洁,Java代码不如c++灵活。100这个数字,楼主要是不明白那我就没办法了,100个囚犯啊。</p>
</div>
<p><br>两个否定怎么是从C++里来的啊?</p>
<p>还有这个100不是我不知道什么意思,假如现在要换成200个人,那你不是要改很多地方么</p>
</div>
<p>以前写C/C++都是直接写if(a)或if(!a),从来不写if(a!=0)或if(a==0)。Java中我就也这样写了。改成200只要改两个数字,我写的时候没考虑太多扩展性。其实可以把100作为一个静态常量写到Prisoner里。</p>
50 楼 hkliya 2010-01-15  
<div class="quote_title">红楼一梦 写道</div>
<div class="quote_div">
<div class="quote_title">hkliya 写道</div>
<div class="quote_div">
<p>light=<span class="keyword"><strong><span style="color: #7f0055;">false</span></strong></span><span>; // 等号两边加空格哦</span></p>
<p><span><span class="keyword"><strong></strong></span></span></p>
<p><span><span class="keyword"><strong><span style="color: #7f0055;">private</span></strong></span><span> HashMap&lt;Integer,Prisoner&gt; Prison; //变量名首字母小写哦</span></span></p>
<p><span><span><span class="keyword"><strong></strong></span></span></span></p>
<p><span><span><span class="keyword"><strong><span style="color: #7f0055;">if</span></strong></span><span>(!once&amp;&amp;!light){   // 两个否定很晕哦</span></span></span></p>
<p> </p>
<p><span class="keyword"><strong><span style="color: #7f0055;">for</span></strong></span><span>(</span><span class="keyword"><strong><span style="color: #7f0055;">int</span></strong></span><span> i=</span><span class="number"><span style="color: #c00000;">1</span></span><span>;i&lt;</span><span class="number"><span style="color: #c00000;">100</span></span><span>;i++)   //100这个Magic Number是什么意思哦</span></p>
<p> </p>
</div>
<p>我从c++过来的,留着很多c++的习惯。等号两边加不加空格和变量小不小写这样的细节还的确没注意过。以前写c++从来不管这些。两个否定嘛,也是从c++那边搬来的习惯。我觉得c++的代码简洁,Java代码不如c++灵活。100这个数字,楼主要是不明白那我就没办法了,100个囚犯啊。</p>
</div>
<p><br>两个否定怎么是从C++里来的啊?</p>
<p>还有这个100不是我不知道什么意思,假如现在要换成200个人,那你不是要改很多地方么</p>
49 楼 红楼一梦 2010-01-15  
<div class="quote_title">hkliya 写道</div>
<div class="quote_div">
<p>light=<span class="keyword"><strong><span style="color: #7f0055;">false</span></strong></span><span>; // 等号两边加空格哦</span></p>
<p><span><span class="keyword"><strong></strong></span></span></p>
<p><span><span class="keyword"><strong><span style="color: #7f0055;">private</span></strong></span><span> HashMap&lt;Integer,Prisoner&gt; Prison; //变量名首字母小写哦</span></span></p>
<p><span><span><span class="keyword"><strong></strong></span></span></span></p>
<p><span><span><span class="keyword"><strong><span style="color: #7f0055;">if</span></strong></span><span>(!once&amp;&amp;!light){   // 两个否定很晕哦</span></span></span></p>
<p><span></span></p>
<p><span class="keyword"><strong><span style="color: #7f0055;">for</span></strong></span><span>(</span><span class="keyword"><strong><span style="color: #7f0055;">int</span></strong></span><span> i=</span><span class="number"><span style="color: #c00000;">1</span></span><span>;i&lt;</span><span class="number"><span style="color: #c00000;">100</span></span><span>;i++)   //100这个Magic Number是什么意思哦</span></p>
<p> </p>
</div>
<p>我从c++过来的,留着很多c++的习惯。等号两边加不加空格和变量小不小写这样的细节还的确没注意过。以前写c++从来不管这些。两个否定嘛,也是从c++那边搬来的习惯。我觉得c++的代码简洁,Java代码不如c++灵活。100这个数字,楼主要是不明白那我就没办法了,100个囚犯啊。</p>
48 楼 hkliya 2010-01-15  
红楼一梦 写道
l101y1982j 写道
小问一句,大三那位
能否将for(;;)改为while(true)呢?

习惯

在这时,for和whlie没什么区别,但平时还是用for好些
因为for的初始值,判断条件和步长都在一行,而whlie的步长一般写在最后一行,如果这个循环太长的话,就要拖上拖下,可读性就不如for了
所以可能for用习惯了,遇到现在这种情况还是写for(;;)了
47 楼 红楼一梦 2010-01-15  
l101y1982j 写道
小问一句,大三那位
能否将for(;;)改为while(true)呢?

习惯
46 楼 hkliya 2010-01-15  
中发白 写道
hkliya 写道
中发白 写道
就没人看看我的代码, 有人仔细分析了一下没

有点疑惑为什么属性都不加权限修饰符呢?


已添加。


我觉得计数器类有点多余啊,你觉得呢
//计数器   
public class Counter {   
       
    private int count = 0;   
  
    public void addCount() {   
        count++;   
    }   
  
    public int getCount() {   
        return this.count;   
    }   
  
} 
45 楼 中发白 2010-01-15  
hkliya 写道
中发白 写道
就没人看看我的代码, 有人仔细分析了一下没

有点疑惑为什么属性都不加权限修饰符呢?


已添加。
44 楼 jbon 2010-01-15  
中发白 写道
刚看了一下需求, 自己也就琢磨写了一下, 后面再看了楼主和楼下的, 深感自卑。
指点一下我的缺点。本人工作一年
犯人类
public class Prisoner {

	int id; //犯人编号

	boolean state = false; //犯人状态, 放过风的true, 没放过风的为false;
	
	public Prisoner(){}
	
	public Prisoner(int id){
		this.id = id;
	}
	
	/**
	 * @param light
	 * 开灯
	 */
	public void turnOn(Light light){
		light.turnOn();
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public boolean isState() {
		return state;
	}

	public void setState(boolean state) {
		this.state = state;
	}
	
}

//犯人计数人员
public class PrisonCounter extends Prisoner {
	
	Counter count;
	
	public PrisonCounter(int id, Counter count){
		this.id = id;
		this.count = count;
	}
	
	/**
	 * @param light
	 * 关灯
	 */
	public void turnOff(Light light){
		light.turnOff();
	}
	
	public void addCount(){
		this.count.addCount();
	}
	
	public int getCount(){
		return this.count.getCount();
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}
//灯
public class Light {

	boolean isLight = false;
	
	public void turnOn() {
		isLight = true;
	}

	public void turnOff() {
		isLight = false;
	}
	
	public boolean isLight(){
		return isLight;
	}

}

//计数器
public class Counter {
	
	private int count = 0;

	public void addCount() {
		count++;
	}

	public int getCount() {
		return this.count;
	}

}

//随机计数人员
public class RandomPointPrisonCount {
	
	int id;

	public RandomPointPrisonCount(Prisoner[] prisonArray){
		Random rd = new Random();
		int id = rd.nextInt(prisonArray.length);
		this.id = id;
	}
	
	public int getPrisonerCounterId(){
		return id;
	}
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}

}

//测试类
public class Test {
	
	final int PRISONER_COUNT = 100; //犯罪总人数
	
	Prisoner[] prisonArray = new Prisoner[PRISONER_COUNT];//犯罪人容器
	
	Prisoner prisonCounter;
	
	/**
	 * 初始化 
	 */
	public void init(){
		initPrison();
		PointPrisonCount();
	}
	
	/**
	 *	初始化罪犯 
	 */
	public void initPrison(){
		for(int i = 0; i < PRISONER_COUNT; i++){
			Prisoner prison = new Prisoner(i);
			prisonArray[i] = prison;
		}
	}
	
	/**
	 * 随机指定计数员
	 */
	public void PointPrisonCount(){
		RandomPointPrisonCount rppc = new RandomPointPrisonCount(prisonArray);//随机产生一个计数员
		Prisoner prison = new PrisonCounter(rppc.id, new Counter());
		prisonArray[rppc.id] = prison;
		prisonCounter = prison;
		System.out.println("当前计数员为:" + rppc.id);
	}
	
	public void runGame(){
		Light light = new Light();
		int day = 0;
		PrisonCounter counter = (PrisonCounter)prisonCounter;
		while(counter.getCount() < PRISONER_COUNT -1){
			Random rm = new Random();
			int id = rm.nextInt(PRISONER_COUNT);
			if(id == prisonCounter.id){//如果是计数员出来,灯亮就关闭
				if(light.isLight){
					counter.turnOff(light);
					counter.addCount();
				}
			}else{
				if(!light.isLight){
					if(!prisonArray[id].state){
						prisonArray[id].turnOn(light);
						prisonArray[id].state = true;
					}
				}
			}
			
			day++;
		}
		System.out.println("一共花了" + day + "天, 人员全部出狱!");
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		Test test = new Test();
		test.init();
		test.runGame();
	}

}




老太太的裹脚布
43 楼 jbon 2010-01-15  
168_ccxx 写道
100行不到,包括空行等
//灯类
public class Light
{
    private boolean isOn; //开关 默认开

    public Light()
    {
        this.isOn = true;
    }

    public boolean isOn()
    {
        return isOn;
    }

    public void setOn(boolean isOn)
    {
        this.isOn = isOn;
    }
}

//囚犯,不包括计数员
public class Prisoner
{
    private boolean isOnLight; //是否关过灯

    public Prisoner()
    {
        this.isOnLight = false;
    }

    public boolean isOnLight()
    {
        return isOnLight;
    }

    public void setOnLight(boolean isOnLight)
    {
        this.isOnLight = isOnLight;
    }
}

import java.util.HashMap;
import java.util.Map;
import java.util.Random;

public class StartGame
{
    private static Map<Integer, Prisoner> pMap = new HashMap<Integer, Prisoner>();

    private static Random rd = new Random();

    static
    {
        Prisoner ps;
        for (int i = 0; i < 99; i++) //第99的位置留给计数员
        {
            ps = new Prisoner();
            pMap.put(i, ps);
        }
    }

    public static void main(String[] args)
    {
        int count = 0;
        int dayCount = 0;
        Light lt = new Light();
        while (true)
        {
            dayCount++;
            int num = rd.nextInt(100);
            if (num == 99)
            {
                lt.setOn(true);
                continue;
            }
            Prisoner ps = pMap.get(num);
            if (!ps.isOnLight() && lt.isOn())
            {
                count++;
                ps.setOnLight(true);
                lt.setOn(false);
            }
            if (count == 99)
            {
                break;
            }
        }
        System.out.println(dayCount);
        System.out.println(dayCount / 365);
    }
}


算法不对,没看清楼住的题目
42 楼 hkliya 2010-01-15  
中发白 写道
就没人看看我的代码, 有人仔细分析了一下没

有点疑惑为什么属性都不加权限修饰符呢?
41 楼 hkliya 2010-01-15  
hrwhat 写道
zj1211 写道
先支持一下楼主,至少楼主能在编码中找到快乐。 顺便感叹一下,这年头直接使用JDK的提供的方法怎么就忒受人歧视,有必要言必称希腊吗。

  建议以后放屁还是先脱裤子,再用食品袋罩住屁股。这样才是放屁经验超过1年的高手。因为:
1 比较环保,不会污染空气。
2 不会污染裤子,也就减少洗衣服的次数,也就等于为减少C排放做贡献
3 拉动了塑料袋的消费,为GDP增长做贡献

如此多的好处啊。



支持,就这么个小程序,用得着上纲上线吗?
重要的是心态,乐观,积极向上的心态最重要


你说的对,心态很重要
有时面试会出这种小问题,让你写代码,高手就从这一小段代码就能看出你的水平哦
40 楼 中发白 2010-01-15  
就没人看看我的代码, 有人仔细分析了一下没
39 楼 hrwhat 2010-01-15  
zj1211 写道
先支持一下楼主,至少楼主能在编码中找到快乐。 顺便感叹一下,这年头直接使用JDK的提供的方法怎么就忒受人歧视,有必要言必称希腊吗。

  建议以后放屁还是先脱裤子,再用食品袋罩住屁股。这样才是放屁经验超过1年的高手。因为:
1 比较环保,不会污染空气。
2 不会污染裤子,也就减少洗衣服的次数,也就等于为减少C排放做贡献
3 拉动了塑料袋的消费,为GDP增长做贡献

如此多的好处啊。



支持,就这么个小程序,用得着上纲上线吗?
重要的是心态,乐观,积极向上的心态最重要
38 楼 睡着的兔子 2010-01-15  
看了看大家的代码   感觉自己有很大的提升空间啊

相关推荐

    3.3 谁是罪犯?-简单逻辑分析1

    在本节"3.3 谁是罪犯?-简单逻辑分析1"中,主要涉及的是Python编程语言中的逻辑判断语句,特别是`if`条件语句的使用以及其等价表达方式。我们将深入探讨这些知识点,并通过几个示例进行解析。 首先,我们来看一道...

    点杀罪犯问题

    用单向循环链表实现了对点杀罪犯问题(约瑟夫问题)的处理。

    java得到一个罪犯的xml例子

    用java得到一个罪犯的xml例子,并生成了节点信息!给大家参考

    狱内罪犯危险性评估系统的设计与实现-java-文档-狱内罪犯危险性评估系统的设计与实现文档

    ### 知识点一:狱内罪犯危险性评估系统概述 #### 1.1 选题背景与意义 随着社会的发展与进步,狱政管理面临着越来越多的挑战,特别是对于狱内罪犯的管理和改造工作。传统的狱政管理模式在面对大量罪犯时显得...

    《罪犯档案管理系统》是专门针对监狱管理记录罪犯信息而设计的一款软件.zip

    《罪犯档案管理系统》是一款专为监狱管理设计的人工智能应用程序,旨在高效、精确地记录和处理罪犯的各类信息。这款系统集成了先进的技术,包括信息管理系统、HTML前端开发以及系统分析与设计的原理,以实现数据的...

    防止犯人串供 隔离设计

    在这个场景中,目标是确保每个有牵连的犯人都不能被关在同一间关押室,以防止他们串供。这个问题可以通过关系矩阵和特定的计算步骤来解决。 1. **关系矩阵构建**:首先,建立一个8x8的关系矩阵,表示犯人之间的关系...

    专题资料(2021-2022年)《罪犯劳动管理》课程标准1精.doc

    《罪犯劳动管理》课程标准主要探讨的是监狱在执行刑罚和改造罪犯过程中如何有效利用劳动作为改造手段,旨在培养罪犯的劳动习惯、技能,并保护其合法权益。这是一门实践性强、应用性高的课程,对监狱管理专业的学生至...

    access写的罪犯改造评估程序

    罪犯改造评估是一项复杂的任务,涉及到多个维度的数据分析,如罪犯的个人资料、犯罪记录、改造表现等。在Access中,这些信息被精心组织成数据库表,每个表都有清晰的字段定义,如罪犯ID、姓名、年龄、犯罪类型、改造...

    网络游戏-基于Zigbee无线网络和GPRS无线网络的犯人监控系统.zip

    《网络游戏-基于Zigbee无线网络和GPRS无线网络的犯人监控系统》是一个结合了现代信息技术与安全监控的创新方案。该系统的核心是利用Zigbee无线网络和GPRS无线网络的技术,实现对犯人的实时、高效监控,确保监狱管理...

    react-native-app-qiufit, 罪犯调节追踪程序.zip

    react-native-app-qiufit, 罪犯调节追踪程序 #Convict 调节跟踪器##Screenshot ##App 存储 ##Play 存储 ##AUTHOR按chengzhen设计##LICENSE GNU通用 public 许可证版本 3,29

    小学数学数学故事谁是真正的罪犯

    所以,按照逻辑推理,如果假设只有一个说谎者,丁是真正的罪犯。这个问题展示了在解决逻辑谜题时,如何通过分析矛盾来确定真相,这也是小学数学教育中培养逻辑思维能力的一种方式。通过这样的问题,孩子们可以学习到...

    论文研究 - 通过创业教育发展罪犯的专业技能

    因此,这是一个定性的探索性研究,包括两个阶段:抽样和分析,这支持名为“专业教育计划”的模型的开发和应用,该模型强调了EnSp的“创业螺旋—PEP”。 此后,介绍了数据分析和专业技能的发展,结果积极表明通过与...

    电信设备-一种犯人信息采集装置.zip

    这里我们关注的是一种特别的应用场景——犯人信息采集装置。这个装置是电信技术与司法管理相结合的产物,旨在提高监狱管理和犯人信息处理的效率。 犯人信息采集装置通常包含了多种技术集成,例如生物识别技术(如...

    论文研究 - 男性家庭暴力罪犯对恐惧和悲伤的面部识别不准确

    这项研究的目的是比较因家庭暴力侵害女性伴侣或配偶而被法庭命令接受家庭暴力治疗的男性(家庭暴力罪犯; DVO)(n = 35)和一组非暴力男性(n = 35)面部表情识别以及自我认同感,认知能力,外伤史和人口统计学信息...

    信息化背景下如何提高罪犯的教育改造质量.docx

    ### 信息化背景下提高罪犯教育改造质量的关键知识点 #### 一、监狱信息化的概念与目标 - **定义**:监狱信息化是指运用信息技术手段,包括信息处理、网络通讯、生物识别等,对监狱内部的信息进行采集、传输和管理...

    监狱犯人自动考勤系统解决方案.doc

    监狱犯人自动考勤系统解决方案的计数管理软件界面提供了一个友好的用户界面,方便用户对犯人进行考勤和管理。 八、产品照片 监狱犯人自动考勤系统解决方案的产品照片展示了产品的外观和实际应用场景。

    如何开展对罪犯及个别教育.pdf

    罪犯的个别教育是个体化、针对性强的教育方式,旨在针对每个罪犯的独特情况,实施个性化教育,从而达到改造的目的。 首先,开展罪犯个别教育需运用科学的手段。这包括科学地认识、分析和管理罪犯。理解罪犯不仅是...

    Java毕业设计-基于springboot+vue狱内罪犯危险性评估系统的设计与实现-付源代码+论文+mysql(大作业)

    本项目是一个综合性的Java毕业设计项目,旨在通过Spring Boot框架与Vue.js前端技术,实现一个狱内罪犯危险性评估系统。该系统不仅为监狱管理提供了一个科学、高效的评估工具,同时也为Java学习者提供了一个实战练习...

    罪犯矫正心理学家的作用与冲突

    罪犯矫正心理学家的作用与冲突,王恩界,乐国安,罪犯矫正心理学家可以在监狱机构内发挥重要的作用,他们能够参与罪犯分类管理、假释鉴定、评估罪犯的心理问题、实施罪犯心理矫治

Global site tag (gtag.js) - Google Analytics