Mac-air(DVDドライブなし)にOfficeをインストールするときのメモです。
Mac-Proを持っていたのでそれを利用してインストールしました。
1. Mac-proにDVDをいれて、共有する
システム環境設定 -> 共有 -> DVD または CD 共有 にチェック
2. Mac-airからリモートディスクにアクセス
移動 -> コンピュータ -> リモートディスク -> 使用を依頼 をクリック
Mac-proの方で許可するか聞かれるので、許可するとDVDの内容が見えます。
あとはそのままインストールします。
またはマイクロソフトからDVDイメージをダウンロード出来るのでそれを利用します。
2012年1月10日火曜日
MACにEclipseを設定(日本語化)
MACにEclipseを設定し日本語化するときのメモ
1. 必要なものをダウンロードし展開
eclipse-java-indigo-SR1-macosx-cocoa-x86_64.tar (Eclipse本家から)
pleiades-e3.7-java_20110924.zip (Pleiadesより)
2. 展開したdropinsをコピー
pleiades.dropins -> eclipse.dropins
3. Eclipse.eclipse.iniの最後に1行記述
/eclipse/Eclipse.app/Contents/MacOS/eclipse.iniを編集
(eclipse.appを右クリックでパッケージの内容を表示)
最終行に次を追加
-javaagent:../../../dropins/MergeDoc/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar
補足. javaのインストール
ターミナルで
$ java -version とすればJREをインストールしてくれました。
eclipseを起動したら、日本語化されており実行も無事できました。
参考ページ
http://www.la-nouveau.mydns.jp/wordpress/?p=1302
1. 必要なものをダウンロードし展開
eclipse-java-indigo-SR1-macosx-cocoa-x86_64.tar (Eclipse本家から)
pleiades-e3.7-java_20110924.zip (Pleiadesより)
2. 展開したdropinsをコピー
pleiades.dropins -> eclipse.dropins
3. Eclipse.eclipse.iniの最後に1行記述
/eclipse/Eclipse.app/Contents/MacOS/eclipse.iniを編集
(eclipse.appを右クリックでパッケージの内容を表示)
最終行に次を追加
-javaagent:../../../dropins/MergeDoc/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar
補足. javaのインストール
ターミナルで
$ java -version とすればJREをインストールしてくれました。
eclipseを起動したら、日本語化されており実行も無事できました。
参考ページ
http://www.la-nouveau.mydns.jp/wordpress/?p=1302
2012年1月4日水曜日
重複組み合わせの全件出力プログラム
k_1+k_2+・・・+k_K=N、k_i>=0 を全件表示するプログラムです。
プログラム中のkとnは実際コンストラクタ等で与えておきます。
kが変化すると呼び出すfor文の回数も変わるので再起処理しています。
public class Duplication {
static int idx = 0;
/**
* @param args
*/
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
int k = 5, n = 10; //実際はコンストラクタで初期化
int k_sum = 0, roop = 0;
long h = (fact(k+n-1)/(fact(n)*fact(k-1)));
int[][] combi = new int[(int)h][k]; //結果を格納のする配列(最終結果)
int[] k_mem = new int[k]; //各ループで上書き
System.out.println("今回はK="+k+", N="+n+"で"+k+"H"+n+"="+(k+n-1)+"C"+n+"となり"+(fact(k+n-1)/(fact(n)*fact(k-1)))+"通りあります");
dupricate(k_mem, k_sum, k, n, roop, combi);
int l = 0;
for (int[] array : combi) {
l++;
System.out.print("["+l+"]");
for (int element : array) {
System.out.print(element);
}
System.out.println("");
}
}
static long fact(long num){
long i;
if(num == 1){
return 1;
} else {
i = num * fact(num - 1);
return i;
}
}
/**
* @param k_mem[] 各ループのk_iの値
* @param k_sum 今までのk_memの総和
* @param k 拠点数(定数)
* @param n 総台数(定数)
* @param roop 何回目の呼出か(最大K)
* @param combi 結果を格納
* @param idx combiの行番号0~h-1(クラス変数)
*/
static void dupricate(int k_mem[], int k_sum, int k, int n, int roop, int combi[][]){
roop ++; //呼び出された回数をアップ
for( int i = 0; i + k_sum <= n; i++){
k_mem[roop-1] = i; //k_memの要素にiを代入
k_sum += i; //k_sumにiを加える
if(roop == k){ //ループ回数がkに達した場合
if(k_sum == n){ //組み合わせが一致した場合
System.arraycopy(k_mem, 0, combi[idx], 0, k); //一致したらk_memをcombiにコピー
//void java.lang.System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
//System.out.println("COPY");
idx ++;
}
}else {
dupricate(k_mem, k_sum, k, n, roop, combi);
}
k_sum -= i; //今回行った和を戻す
}
}
}
プログラム中のkとnは実際コンストラクタ等で与えておきます。
kが変化すると呼び出すfor文の回数も変わるので再起処理しています。
public class Duplication {
static int idx = 0;
/**
* @param args
*/
public static void main(String[] args) {
// TODO 自動生成されたメソッド・スタブ
int k = 5, n = 10; //実際はコンストラクタで初期化
int k_sum = 0, roop = 0;
long h = (fact(k+n-1)/(fact(n)*fact(k-1)));
int[][] combi = new int[(int)h][k]; //結果を格納のする配列(最終結果)
int[] k_mem = new int[k]; //各ループで上書き
System.out.println("今回はK="+k+", N="+n+"で"+k+"H"+n+"="+(k+n-1)+"C"+n+"となり"+(fact(k+n-1)/(fact(n)*fact(k-1)))+"通りあります");
dupricate(k_mem, k_sum, k, n, roop, combi);
int l = 0;
for (int[] array : combi) {
l++;
System.out.print("["+l+"]");
for (int element : array) {
System.out.print(element);
}
System.out.println("");
}
}
static long fact(long num){
long i;
if(num == 1){
return 1;
} else {
i = num * fact(num - 1);
return i;
}
}
/**
* @param k_mem[] 各ループのk_iの値
* @param k_sum 今までのk_memの総和
* @param k 拠点数(定数)
* @param n 総台数(定数)
* @param roop 何回目の呼出か(最大K)
* @param combi 結果を格納
* @param idx combiの行番号0~h-1(クラス変数)
*/
static void dupricate(int k_mem[], int k_sum, int k, int n, int roop, int combi[][]){
roop ++; //呼び出された回数をアップ
for( int i = 0; i + k_sum <= n; i++){
k_mem[roop-1] = i; //k_memの要素にiを代入
k_sum += i; //k_sumにiを加える
if(roop == k){ //ループ回数がkに達した場合
if(k_sum == n){ //組み合わせが一致した場合
System.arraycopy(k_mem, 0, combi[idx], 0, k); //一致したらk_memをcombiにコピー
//void java.lang.System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
//System.out.println("COPY");
idx ++;
}
}else {
dupricate(k_mem, k_sum, k, n, roop, combi);
}
k_sum -= i; //今回行った和を戻す
}
}
}
登録:
投稿 (Atom)