A tool can convert subtitles from .ass/.ssa to .srt
support subtitle format: .ass .ssa .srt
Website: http://www.aegisub.org/
2012/12/16
2012/08/26
[C++]亂數機率
好久沒coding了
趁著空檔簡單寫個測試亂數機率的程式
來個不傷腦力的這樣...
------------------------------------CODE------------------------------------
#include <cstdlib>
#include <iostream>
#include <time.h>
using namespace std;
int main(int argc, char *argv[])
{
int Cnt;
int Get;
int Box[9][2];
float Temp = 0;
srand(time(NULL));
for(int i=0; i<9; i++)
{
Box[i][0] = i+1;
Box[i][1] = 0;
}
cout << "實驗次數:";
cin >> Cnt;
for(int i=Cnt; i>0; i--)
{
Get = rand()%9+1;
Box[Get-1][1] = Box[Get-1][1]+1;
}
cout << endl;
cout << "數字\t次數\t機率" << endl;
for(int i=0; i<9; i++)
{
for(int j=0; j<2; j++)
{
cout << Box[i][j] << "\t" ;
}
Temp = Box[i][1];
cout << Temp / Cnt << endl;
}
system("PAUSE");
return EXIT_SUCCESS;
}
趁著空檔簡單寫個測試亂數機率的程式
來個不傷腦力的這樣...
------------------------------------CODE------------------------------------
#include <cstdlib>
#include <iostream>
#include <time.h>
using namespace std;
int main(int argc, char *argv[])
{
int Cnt;
int Get;
int Box[9][2];
float Temp = 0;
srand(time(NULL));
for(int i=0; i<9; i++)
{
Box[i][0] = i+1;
Box[i][1] = 0;
}
cout << "實驗次數:";
cin >> Cnt;
for(int i=Cnt; i>0; i--)
{
Get = rand()%9+1;
Box[Get-1][1] = Box[Get-1][1]+1;
}
cout << endl;
cout << "數字\t次數\t機率" << endl;
for(int i=0; i<9; i++)
{
for(int j=0; j<2; j++)
{
cout << Box[i][j] << "\t" ;
}
Temp = Box[i][1];
cout << Temp / Cnt << endl;
}
system("PAUSE");
return EXIT_SUCCESS;
}
------------------------------------CODE------------------------------------
完畢,繼續唸書去...
2012/07/03
解決cin與getline()合用的問題
The problem:
cin>> leaves the newline character (\n) in the iostream. If getline is used after cin>>, the getline sees this newline character as leading whitespace, thinks it is finished and stops reading any further.
Reference:
http://mathbits.com/mathbits/compsci/APstrings/APgetline.htm (英文原文)
http://csie-tw.blogspot.tw/2007/10/cin-getlinecin-s.html (藏經閣,中文)
2012/06/18
數學動態繪圖軟體Geogebra
剛好最近弄三角函數需要
找到此一方便好用的數學動態繪圖軟體 Geogebra
重點是免費 + 跨平台
https://sites.google.com/a/ymsh.tp.edu.tw/geogebra/
找到此一方便好用的數學動態繪圖軟體 Geogebra
重點是免費 + 跨平台
https://sites.google.com/a/ymsh.tp.edu.tw/geogebra/
2012/06/13
[Android]BMI
package kevin.demo;
import java.math.BigDecimal;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class BMIActivity extends Activity implements OnClickListener
{
private TextView txtResult;
private EditText edtWeight;
private EditText edtHeight;
private Button btnGo;
private TextView txtScale;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
txtResult = (TextView)findViewById(R.id.txtResult);
txtScale = (TextView)findViewById(R.id.txtScale);
edtHeight = (EditText)findViewById(R.id.edtHeight);
edtWeight = (EditText)findViewById(R.id.edtWeight);
btnGo = (Button)findViewById(R.id.btnGo);
btnGo.setOnClickListener(this);
}
public void onClick(View v)
{
// TODO Auto-generated method stub
if(v.equals(btnGo))
{
float W,H,BMI;
W = Float.parseFloat(edtWeight.getText().toString());
H = Float.parseFloat(edtHeight.getText().toString());
H = H / 100;
BMI = W / (H*H);
BigDecimal Get = new BigDecimal(BMI);
float Result = Get.setScale(2, BigDecimal.ROUND_HALF_UP).floatValue();
//四捨五入並保留兩位小數
txtResult.setText("您的BMI: "+Float.toString(Result));
if(BMI < 18.5)
{
//體重過輕
txtScale.setText("體重過輕");
}
else if((BMI >= 18.5)&&(BMI < 24))
{
//正常範圍
txtScale.setText("正常範圍");
}
else if((BMI >= 24)&&(BMI < 27))
{
//過重
txtScale.setText("體重過重");
}
else if((BMI >= 27)&&(BMI < 30))
{
//輕度肥胖
txtScale.setText("輕度肥胖");
}
else if((BMI >= 30)&&(BMI < 35))
{
//中度肥胖
txtScale.setText("中度肥胖");
}
else if(BMI >= 35)
{
//重度肥胖
txtScale.setText("重度肥胖");
}
}
}
2012/05/26
install oracle-java on Ubuntu via PPA
找到比較方便的作法
利用PPA來源
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer
完成後用java-version來看看java是否已經替換成oracle java 7了
2012/05/20
刪除Ubuntu磁區後修復Windwos mbr
如果直接在Windwos底下的磁碟管理工具將Ubuntu所在磁區刪除
下次開機就會碰到GRUB無法抓到分割區的問題
如果要Windows正常運作
以Windows 7為例
用Windows 7安裝光碟開機
選擇修復選項
在命令提示字元中輸入
bootsect /nt60 SYS /mbr
接著重新開機即可
參考:http://ahhafree.blogspot.com/2011/11/ubuntu-grub-rescue.html
下次開機就會碰到GRUB無法抓到分割區的問題
如果要Windows正常運作
以Windows 7為例
用Windows 7安裝光碟開機
選擇修復選項
在命令提示字元中輸入
bootsect /nt60 SYS /mbr
接著重新開機即可
參考:http://ahhafree.blogspot.com/2011/11/ubuntu-grub-rescue.html
[C++]猜數字
C++寫的猜數字程式
猜一個四位數字(千位數不為0,且沒有數字重複)
它會提示有幾A幾B
ex: 2A1B
2A代表有2個數值猜對且位置正確
1B代表有1個數值猜對但位置不正確
以下為code
#include <iostream>
#include <cstdlib>
#include <sstream>
#include <time.h>
using namespace std;
//把整數轉為字串的副程式IntToString
string IntToString (int N)
{
string Get;
stringstream ss;
ss << N;
ss >> Get;
return Get;
}
int main()
{
string Answer; //儲存答案
string Guess; //儲存使用者猜的數字
int Num; //儲存由rand()產生的亂數
int A = 0;
int B = 0;
int Time = 5; //一個回合可以猜的次數
int Round = 1; //回合數 初始值 = 1
srand(time(NULL));
while(true)
{
Answer = IntToString(rand()%9+1); //先將答案的千位數字指定為1~9之間的任意數字
for (int i=1; i<4; i++)
{
//產生謎底
Num = rand()%10;
if(Answer.find(IntToString(Num)) == -1)
{
Answer = Answer + IntToString(Num);
}
else
{
i--;
}
}
cout << "----------------------" << endl;
cout << "Round " << Round << endl; //提示目前回合
cout << endl;
while(true)
{
//將A與B值初始化
A = 0;
B = 0;
//使用者猜數字
cout << "請猜一個四位數字: ";
getline(cin,Guess);
//判斷幾A幾B
for (int i=0; i<4; i++)
{
for (int j=0; j<4; j++)
{
if((Answer[i] == Guess[j])&&(i == j))
{
A++; //值吻合且位置相同
}
else if((Answer[i] == Guess[j])&&(i != j))
{
B++; //值吻合但位置不同
}
}
}
//輸出提示
if (A == 4)
{
cout << "恭喜答對!" << endl;
break;
}
else if((A != 4)&&(Time > 1))
{
Time--;
cout << A << "A" << B << "B" << endl;
cout << "尚餘 " << Time << " 次機會..." << endl;
cout << endl;
//Debug過程用
//cout << Answer << endl;
}
else
{
break;
}
}
//
cout << A << "A" << B << "B" << endl;
cout << endl;
cout << "正確解答: " << Answer << endl;
Round++;
Answer = "";
Guess = "";
Time = 5;
}
return 0;
}
猜一個四位數字(千位數不為0,且沒有數字重複)
它會提示有幾A幾B
ex: 2A1B
2A代表有2個數值猜對且位置正確
1B代表有1個數值猜對但位置不正確
以下為code
#include <iostream>
#include <cstdlib>
#include <sstream>
#include <time.h>
using namespace std;
//把整數轉為字串的副程式IntToString
string IntToString (int N)
{
string Get;
stringstream ss;
ss << N;
ss >> Get;
return Get;
}
int main()
{
string Answer; //儲存答案
string Guess; //儲存使用者猜的數字
int Num; //儲存由rand()產生的亂數
int A = 0;
int B = 0;
int Time = 5; //一個回合可以猜的次數
int Round = 1; //回合數 初始值 = 1
srand(time(NULL));
while(true)
{
Answer = IntToString(rand()%9+1); //先將答案的千位數字指定為1~9之間的任意數字
for (int i=1; i<4; i++)
{
//產生謎底
Num = rand()%10;
if(Answer.find(IntToString(Num)) == -1)
{
Answer = Answer + IntToString(Num);
}
else
{
i--;
}
}
cout << "----------------------" << endl;
cout << "Round " << Round << endl; //提示目前回合
cout << endl;
while(true)
{
//將A與B值初始化
A = 0;
B = 0;
//使用者猜數字
cout << "請猜一個四位數字: ";
getline(cin,Guess);
//判斷幾A幾B
for (int i=0; i<4; i++)
{
for (int j=0; j<4; j++)
{
if((Answer[i] == Guess[j])&&(i == j))
{
A++; //值吻合且位置相同
}
else if((Answer[i] == Guess[j])&&(i != j))
{
B++; //值吻合但位置不同
}
}
}
//輸出提示
if (A == 4)
{
cout << "恭喜答對!" << endl;
break;
}
else if((A != 4)&&(Time > 1))
{
Time--;
cout << A << "A" << B << "B" << endl;
cout << "尚餘 " << Time << " 次機會..." << endl;
cout << endl;
//Debug過程用
//cout << Answer << endl;
}
else
{
break;
}
}
//
cout << A << "A" << B << "B" << endl;
cout << endl;
cout << "正確解答: " << Answer << endl;
Round++;
Answer = "";
Guess = "";
Time = 5;
}
return 0;
}
2012/05/02
[C++]跑馬燈改版
電腦課實做
隨手弄弄的作品...
就...橫桿轉呀轉的同時顯示進度...
#include <cstdlib>
#include <iostream>
using namespace std;
void Delay()
{
for(int i=0; i<60000000; i++)
{
//用於時間延遲的副程式
}
}
int main(int argc, char *argv[])
{
for(int i=1; i<=100; i++)
{
if(i % 4 == 0)
{
cout << "|" << " . " << i << "%";
}
else if(i % 4 == 1)
{
cout << "/" << " .. " << i << "%";
}
else if(i % 4 == 2)
{
cout << "─" << " ... " << i << "%";
}
else if(i % 4 == 3)
{
cout << "\" << " .... " << i << "%";
}
Delay();
system("CLS");
}
system("PAUSE");
return EXIT_SUCCESS;
}
隨手弄弄的作品...
就...橫桿轉呀轉的同時顯示進度...
#include <cstdlib>
#include <iostream>
using namespace std;
void Delay()
{
for(int i=0; i<60000000; i++)
{
//用於時間延遲的副程式
}
}
int main(int argc, char *argv[])
{
for(int i=1; i<=100; i++)
{
if(i % 4 == 0)
{
cout << "|" << " . " << i << "%";
}
else if(i % 4 == 1)
{
cout << "/" << " .. " << i << "%";
}
else if(i % 4 == 2)
{
cout << "─" << " ... " << i << "%";
}
else if(i % 4 == 3)
{
cout << "\" << " .... " << i << "%";
}
Delay();
system("CLS");
}
system("PAUSE");
return EXIT_SUCCESS;
}
2012/03/24
[java]猜數字
package kevin.demo;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class GuessApp
{
/**
* @param args
* @throws IOException
* @throws NumberFormatException
*/
public static void main(String[] args) throws NumberFormatException, IOException
{
// TODO Auto-generated method stub
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int Guess; //存放使用者輸入的數字
int Ans; //存放隨機產生的數值(答案)
Ans = (int)(Math.random()*100+1); //Math.random()產生的型別為double(介於0.0~1.0),需用(int)轉換成int型別
for(int i=5; i>0; i--)
{
System.out.print("請猜一個數字:");
Guess = Integer.parseInt(br.readLine());
if(Guess == Ans)
{
System.out.println("恭喜您!答對了!");
break;
}
else if(Guess < Ans)
{
System.out.println("再大一點,您還剩下"+(i-1)+"次機會");
}
else if(Guess > Ans)
{
System.out.println("再小一點,您還剩下"+(i-1)+"次機會");
}
}
System.out.println("正解為:"+Ans);
}
}
2012/02/04
Ubuntu/Linux Mint安裝jdownloader
紀錄如何在Ubuntu/Linux Mint安裝jdownloader並啟用自動關機功能
首先,藉由ppa來源安裝jdownloader
sudo add-apt-repository ppa:jd-team/jdownloader
首先,藉由ppa來源安裝jdownloader
sudo add-apt-repository ppa:jd-team/jdownloader
sudo apt-get update
sudo apt-get install jdownloader
安裝後如果要啟用jdownloader的自動關機
必須要讓使用者具有root權限來做關機的動作
所以接著要把使用者加入到sudoer文件中
為了防止出錯
先把sudoer這個檔案做備份
sudo cp /etc/sudoer /etc/sudoer.bak
接著用文字編輯器(這裡用的是vim)打開sudoer
sudo vim /etc/sudoer
在sudoer的最後加入
使用者名稱 ALL= NOPASSWD: /sbin/shutdown
存檔離開之後就可以正確執行jdownloader的自動關機功能
P.S如果所有步驟做完仍然不能執行,請先把sudoer回復
sudo cp /etc/sudoer.bak /etc/sudoer
2012/01/28
[C++]Lottery Number Creator
實作C++亂數的使用
範例是用樂透彩,由電腦亂數取出每一組有6個數字(不重複)的序列並印出
#include <iostream>
#include <time.h>
using namespace std;
int main()
{
int a,n;
int Index = 0;
int Box[6];
bool Exist ;
srand(time(NULL));
cout << "Please input a number:";
cin >> n;
while(n > 0)
{
for(int i=0; i<6; i++)
{
a = rand()%49+1;
Exist = false;
for(int j=0; j<Index; j++)
{
if(Box[j] == a)
{
Exist = true;
break;
}
}
if(Exist == false)
{
Box[Index] = a;
Index++;
}
else
{
i--;
}
}
for(int i=0; i<6; i++)
{
if(Box[i] < 10)
{
cout << 0 << Box[i] << " ";
}
else
{
cout << Box[i] << " ";
}
}
cout << endl;
n--;
Index = 0;
}
system("PAUSE");
return 0;
}
2012/01/19
Blogger Dynamic Views
把網誌的樣式換成Blogger Dynamic Views
(其實是在http://btemplates.com/找到的樣式套上來都有點問題)
有別以往靜態顯示
從左上角的下拉式選單可以變換動態顯示的模式
整體看起來的效果滿簡潔的
小小的缺點是目前還沒有辦法加上像以前側欄的小工具、連結...等
有別以往靜態顯示
從左上角的下拉式選單可以變換動態顯示的模式
整體看起來的效果滿簡潔的
小小的缺點是目前還沒有辦法加上像以前側欄的小工具、連結...等
訂閱:
文章 (Atom)