我是一名计算机科学专业的学生,我将参与一个人工智能项目,该项目将根据类型和情绪输入组成一个音乐曲调。用于此项目的算法可能非常耗费资源吗?如果我选择使用Java而不是C ++,它会对速度产生任何影响吗? (注意:我只知道这两种语言,而且我对Java比C ++更熟悉。)
NB:抱歉我的英语不好。如果有人可以,请在必要时清理此帖子。感谢。
答案 0 :(得分:13)
使用Java,因为您对它更熟悉。这将使您能够专注于解决问题,而不是编程。也许C ++会以更快的程序结束,也许不会,但是到达那里会慢一些,你并没有明确表示程序必须非常快。
答案 1 :(得分:12)
与所选语言相比,资源消耗更受算法方法的影响。如果您熟悉Java,请使用该语言编写应用程序 - 即使C ++实现速度可能快10%。
话虽如此,您可能会对Artificial Intelligence API's for Java感兴趣。
答案 2 :(得分:3)
在我看来,与AI有关的语言是Lisp。
查看Why is Lisp used for AI?
的答案 - 最受欢迎的提及60年代和70年代就是这种情况,但是现在使用了动态语言(ruby,python等)。
答案 3 :(得分:3)
在我看来,你正处于项目的概念验证阶段。我会用你最熟悉的语言。编写良好的Java代码运行速度比写得不好的C语言快得多。
答案 4 :(得分:2)
我会将Common Lisp用于这样的项目。如果你不了解Lisp,我会为这类项目学习它。这将是一次很棒的学习经历,因为你是一名CS学生,它只会帮助你。 Lisp是一种真正令人大开眼界的语言。
答案 5 :(得分:1)
几年前我做了一个类似的AI项目。我不知道你将实施什么解决方案,但AI程序通常既耗费资源又可能需要很长时间才能运行,但另一方面,你需要一种你熟悉的语言才能获得它及时完成。
因此,我的建议是,如果您觉得知道 C ++(或C),请选择其中一个。如果您不了解它们,那么在选择之前,请仔细考虑您需要投入学习新语言的时间。
答案 6 :(得分:1)
如果您从头开始,请使用您最了解的任何内容。如果你想使用已建立的库来加速开发,你可能想先调查一下 - 但Java肯定会有一些。
在你的鞋子里,我肯定会选择Java。
答案 7 :(得分:1)
由于以下原因,我会选择Clojure:
答案 8 :(得分:0)
我的建议是首先设计所需的一切,每个ADT,每个算法类,层次结构,一切。这种项目/编程在C / C ++系列语言中可能很难设计,也许你可以选择其他语言而不是字符串类型的哲学。因此,我鼓励您使用专为此类问题设计的语言,更适合您的应用,functional paradigm
例如:LISP,logical paradigm
例如:PROLOG或类似的事情。
答案 9 :(得分:0)
我的第三年论文项目是蜂窝网络无线电频率分配的启发式实现。我之所以选择Java而不是C ++,是因为它让我比使用C ++更容易想象结果。我不相信C ++中的性能会有很大差异 - 你的算法的复杂因素可能是最大的因素。