202006-1線性分類器Java
總結:思路還可以,將A類點帶入線,大於零就記下true,小於零就記錄false.
B類點也代入線,大於0也記錄true,小於零記錄false
成功分割的條件是A的記錄裡全是true或全是false,B裡也是,並且AB不能同時全是false或同時全是true。
出錯的地方就是開始只定義了一個ans,A是不是全是true已經判斷好了,結果下面到B時又改了A的判斷結果。解決方法是定義了一個ansA,一個ansB。還有在迴圈裡可以大膽定義變數,編譯器不會誤會的(遵循用時定義原則)。
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int n=0,m=0;
Scanner in=new Scanner(System.in);
n=in.nextInt();
m=in.nextInt();
int[] x=new int[n];
int[] y=new int[n];
char[] type=new char[n];
for(int i=0;i<n;i++)
{//讀入點
x[i]=in.nextInt();
y[i]=in.nextInt();
type[i]=in.next().charAt(0);
}
int[] w1=new int[m];
int[] w2=new int[m];
int[] w3=new int[m];
for(int i=0;i<m;i++)
{//讀入線
w1[i]=in.nextInt();
w2[i]=in.nextInt();
w3[i]=in.nextInt();
}
ArrayList<Boolean> resultA=new ArrayList<Boolean>();
ArrayList<Boolean> resultB=new ArrayList<Boolean>();//在迴圈外面定義能省空間嗎?(不能,還忘了clear)
for(int line=0;line<m;line++)//依次判斷每一根線
{
for(int i=0;i<n;i++)
{
if(type[i]=='A')
{
resultA.add(w1[line]+w2[line]*x[i]+w3[line]*y[i]>0);
}
if(type[i]=='B')
{
resultB.add(w1[line]+w2[line]*x[i]+w3[line]*y[i]>0);
}
}
Boolean ansA=false;
Boolean ansB=false;
for(int i=1;i<resultA.size();i++)//陣列和字串是長度。容器是size
{
if(resultA.get(0)==resultA.get(i))
{
ansA=true;
}
else
{
ansA=false;
break;
}
}
for(int i=1;i<resultB.size();i++)//陣列和字串是長度。容器是size
{
if(resultB.get(0)==resultB.get(i))
{
ansB=true;
}
else
{
ansB=false;
break;
}
}
Boolean ans=false;
if((ansA==true)&&(ansB==true)&&(resultB.get(0)!=resultA.get(0)))
{
ans=true;
}
//輸出第i跟線判斷結果
if(ans==false)
{
System.out.println("No");
}
else
{
System.out.println("Yes");
}
resultA.clear();
resultB.clear();
}
}
}
相關文章
- CCFCSP 202006-1 線性分類器 C語言C語言
- CSP-CCF 202006-1 線性分類器 滿分程式碼
- 從線性模型(linear model)衍生出的機器學習分類器(classifier)模型機器學習
- 【火爐煉AI】機器學習008-簡單線性分類器解決二分類問題AI機器學習
- 關於分類的線性模型的討論模型
- 分類器
- Tensorflow-線性迴歸與手寫數字分類
- 【火爐煉AI】機器學習014-用SVM構建非線性分類模型AI機器學習模型
- Android學習筆記之檔案分類和線性佈局Android筆記
- Java™ 教程(區域性類)Java
- 伺服器的種類可以按照不同的屬性劃分伺服器
- 【火爐煉AI】機器學習040-NLP性別判斷分類器AI機器學習
- ThinkPHP 無線遞迴分類PHP遞迴
- 線性差分方程解法
- 伺服器硬碟分類伺服器硬碟
- 伺服器的分類伺服器
- Pytorch實現分類器PyTorch
- 最大似然分類器
- 機器學習演算法(九): 基於線性判別模型的LDA手寫數字分類識別機器學習演算法模型LDA
- STL中的迭代器分類
- 常見儲存器分類
- python建立分類器小結Python
- css選擇器的分類CSS
- 深入剖析 Java 類屬性與類方法的應用Java
- Java內部類詳解--區域性內部類Java
- 人工智慧之機器學習線代基礎——矩陣分類人工智慧機器學習矩陣
- 揭秘Java反射:如何輕鬆獲取類的屬性及父類屬性Java反射
- 廢物分類“非常混亂”?線上人工智慧渣分類系統人工智慧
- Python類屬性和例項屬性分別是什麼?Python
- HanLP分類模組的分詞器介紹HanLP分詞
- [JAVA] 只知物件屬性,不知類屬性?就算類答應,static都不答應Java物件
- 伺服器的作用和分類伺服器
- Python直譯器分類有哪些?Python
- 伺服器IP地址的分類伺服器
- java 分庫關聯查詢工具類Java
- 關於Java異常的分類示例Java
- Java內功祕籍-線性表Java
- Java 將PDF轉為線性PDFJava