teacup. [ 掲示板 ] [ 掲示板作成 ] [ 有料掲示板 ] [ ブログ ]

 投稿者
  題名
  内容 入力補助 youtubeの<IFRAME>タグが利用可能です。(詳細)
    
 URL
[ ケータイで使う ] [ BBSティッカー ] [ 書込み通知 ]


(無題)

 投稿者:sカウa  投稿日:2018年10月19日(金)12時21分0秒 gw.hi-joho.ac.jp
  package sort;
import java.util.Random;

public class heapSort {
    static Random rand;

    public int[] makeheap_MAX(int[] date) {
        int[] max_heap = new int[date.length];
        int child;
        //子が親より大きければ入れ替える、親より子の値が小さくなるまで繰り返す
        for(int i=0;i<date.length;i++) {
            max_heap[i] = date[i];
            child=i;
            while(child > 0) {
                if (max_heap[child] > max_heap[(child-1)/2]) {
                    int temp = max_heap[(child-1)/2];
                    max_heap[(child-1)/2] = max_heap[child];
                    max_heap[child] = temp;
                    child = ((child-1)/2);
                } else {
                    child = 0;
                }
            }
        }
        return max_heap;
    }

    public int[] makeheap_MIN(int[] date) {
        int[] min_heap = new int[date.length];
        int child;
        //子が親より大きければ入れ替える、親より子の値が小さくなるまで繰り返す
        for(int i=0;i<date.length;i++) {
            min_heap[i] = date[i];
            child=i;
            while(child > 0) {
                if (min_heap[child] < min_heap[(child-1)/2]) {
                    int temp = min_heap[(child-1)/2];
                    min_heap[(child-1)/2] = min_heap[child];
                    min_heap[child] = temp;
                    child = ((child-1)/2);
                } else {
                    child = 0;
                }
            }
        }
        return min_heap;
    }

    //昇順のヒープソート
    public int[] heapsort_ASC(int[] heap) {
        makeheap_MAX(heap);
        int k=heap.length-1;
        int tmp;
        int point;
        int i;
        int child;
        while(k>0) {
            i=1;
            child = k;
            //必ず親と子は繰り返される関係なのでk--
            if (heap[k] <= heap[i-1]) {
                tmp = heap[k];
                heap[k] = heap[i-1];
                heap[i-1] = tmp;
            }
            k--;

            /*再構築 必ず親は最大値になる*/
            while(i < k) {
                if (heap[i] > heap[i+1]) {
                    point = i;
                    i = (i*2)+1;
                }else{
                    point = i+1;
                    i = (i*2)+2;
                }
                if (heap[point] >= heap[(point-1)/2]) {
                    tmp = heap[(point-1)/2];
                    heap[(point-1)/2] = heap[point];
                    heap[point] = tmp;
                }
            }
        }
        return heap;
    }

    //降順のヒープソート
    public int[] heapsort_DESC(int[] heap) {
        makeheap_MIN(heap);
        int k=heap.length-1;
        int tmp;
        int point;
        int i;
        int child;

        while(k>0) {
            i=1;
            child = k;
            //必ず親と子は繰り返される関係なのでk--
            if (heap[k] > heap[i-1]) {
                tmp = heap[k];
                heap[k] = heap[i-1];
                heap[i-1] = tmp;
            }
            k--;

            /*再構築 必ず親は最小値になる*/
            while(i < k) {
                if (heap[i] < heap[i+1]) {
                    point = i;
                    i = (i*2)+1;
                }else{
                    point = i+1;
                    i = (i*2)+2;
                }
                if (heap[point] < heap[(point-1)/2]) {
                    tmp = heap[(point-1)/2];
                    heap[(point-1)/2] = heap[point];
                    heap[point] = tmp;
                }
            }
        }
        return heap;

    }



    public static int[] randmnum(int[] date) {
        rand = new Random();
        for(int i=0;i<date.length;i++) {
            date[i] = rand.nextInt(10*10);
        }
        return date;
    }
}
 
 

到着順方式のアルゴリズム

 投稿者:kkk  投稿日:2018年10月15日(月)20時15分51秒 p469205-ipngn200504niho.hiroshima.ocn.ne.jp
  public class Process_management {

public static void arrival_order_system(int[] read_time,int[] x_time) {

if(read_time.length != x_time.length) {
return;
}

double p=1; //確率

//配列
int[] Process_time = new int[read_time.length];
int[] Process_Average = new int[read_time.length];
int[] wait_time = new int[read_time.length];
int[] arrival_time = new int[read_time.length];
String[] Process_name = new String[read_time.length];

//初期化
Process_time = setting(Process_time);
wait_time = setting(wait_time);
Process_Average = setting(Process_Average);
Process_name = setting(Process_name);

for(int i=0;i<Process_time.length;i++) {

if (i > 0) {
Process_Average[i] = Process_Average[i-1] + x_time[i];
Process_time[i] = (x_time[i]+Process_Average[i-1]) - read_time[i];
arrival_time[i] = read_time[i] - read_time[i-1];
if (Process_Average[i-1] - read_time[i] >= 0) {
wait_time[i] = Process_Average[i-1] - read_time[i];
} else {
wait_time[i] = 0;
}
}else if (i==0) {
Process_Average[i] = x_time[i] + read_time[i];
Process_time[i] = x_time[i] + read_time[i];
arrival_time[i] =0;
wait_time[i] = 0;
}
if (Process_Average[i] - read_time[i] < 0 && i != 0) {
int add_time = read_time[i] % Process_Average[i-1];
Process_Average[i] = (Process_Average[i-1] + add_time + x_time[i]);
Process_time[i] = (Process_Average[i-1] + add_time + x_time[i]) - read_time[i];
}
}
p =  (get_Averagetime(x_time) / get_Arrivedtime(arrival_time));
System.out.println("到着純方式の処理時間");
show(Process_name,"各プロセスの名称");
show(Process_Average,"全体の実行時間");
show(Process_time,"プロセスごとの実行時間");
show(wait_time,"プロセスごとの待ち時間");
show(arrival_time,"各プロセスの到着時間間隔");
System.out.println("ターンアラウンドタイム平均:"+get_Averagetime(Process_time));
System.out.println("待ち時間の平均:"+get_Averagetime(wait_time));
System.out.println("平均到着間隔時間:"+get_Arrivedtime(arrival_time));
System.out.println("平均サービス時間:"+get_Averagetime(x_time));
System.out.println("利用率:"+(p*100)+"%");
System.out.println("平均待ち時間:"+(p / (1-p) * get_Averagetime(x_time)));
}

static void show(int[] N,String msg) {
for (int i=0;i<N.length;i++) {
System.out.print(N[i]+"\t");
}
System.out.print(msg+"\n");
}

static void show(String[] N,String msg) {
for (int i=0;i<N.length;i++) {
System.out.print(N[i]+"\t");
}
System.out.print(msg+"\n");
}


static int[] setting(int[] N) {
for (int i=0;i<N.length;i++) {
N[i] = 0;
}
return N;
}

static String[] setting(String[] N) {
for (int i=0;i<N.length;i++) {
N[i] = "P"+(i+1);
}
return N;
}

static double get_Averagetime(int[] N) {
double sum=0;
int i;
for (i=0;i<N.length;i++) {
sum = N[i] + sum;
}
return sum / i;
}

static double get_Arrivedtime(int[] N) {
double sum=0;
int i;
for (i=1;i<N.length;i++) {
sum = N[i] + sum;
}
return sum / (i-1);
}
}
 

LRUのエンティティ

 投稿者:kkk  投稿日:2018年10月13日(土)19時43分3秒 p469205-ipngn200504niho.hiroshima.ocn.ne.jp
  public class LRU {

public static int get_minpoint(int[] N) {
int j=0;
while(N[j] != 0) j++;
return j;
}

public static int[] set_time(int[] N) {
for (int i=0;i<N.length;i++) {
if (N[i] != 0) {
N[i] = (N[i]-1);
} else if (N[i] == 0) {
N[i] = N.length-1;
}
}
return N;
}

public int[] lru_get (int[] A,int[] Insert) {
int[] time = new int[A.length];
for (int i=0; i<A.length;i++) {
A[i] = -1;
time[i] = i;
}
for (int i=0; i<Insert.length;i++) {
int point =get_minpoint(time);
time=set_time(time);
if (time[point] == A[i]) {
time[point] = time.length-1;
} else {
A[point] = Insert[i];
}
}
return A;
}
}
 

最短距離を求めるアルゴリズム

 投稿者:kkk  投稿日:2018年10月13日(土)18時57分55秒 p469205-ipngn200504niho.hiroshima.ocn.ne.jp
  到着地点Aから網羅nまでの容量の組み合わせで最も短いC(容量)を算出するアルゴリズム
public class node {
public static void main(String[] args) {
int[][] node = { {0,20,15,10,0},{20,0,3,0,30},{15,3,0,5,20},{10,0,5,0,25},{0,30,20,5,0} };
int[] R = {9999,9999,9999,9999,9999};
int point=0;
int start=0;
for(int i=0;i<node.length;i++) {
if(node[point][i] != 0)R[i] = node[point][i];
}
R[point] = 0;
view(R);


while(start < node.length) {
boolean check=true;
for(int i=0;i<node.length && R[start] !=0;i++) {
if(R[start]+node[start][i] < R[i] && node[start][i] !=0) {
R[i] =  R[start]+node[start][i];
check = false;
i = node.length;
}
}
if(check) start++; else start--;
}
view(R);
}

static void view(int[] date) {
for (int i=0; i<date.length;i++) {
System.out.print(date[i]+"\t");
}
System.out.println();
}
}
 

マージソートのアルゴリズム

 投稿者:kkk  投稿日:2018年10月13日(土)18時53分47秒 p469205-ipngn200504niho.hiroshima.ocn.ne.jp
  import java.util.Random;

public class Marge_sort {

static Random rand;

public static void main(String[] args) {
// 8 * n行のソートが可能
int n=32*2;
int[] date = new int[8*n];
date = randmnum(date);
int marge_space=2;
int marge_point=0;
int begin = 0;
int end_point;
int end_value=1;
int temp=date.length/2;
int check_count=0;
boolean sw = true;

if((date.length/2)%2 == 0) check_count++;
while(temp >0) {
temp = temp /2;
check_count++;
}

while(marge_space <= date.length) {
begin=0;
end_point = end_value + marge_point;
end_value = end_point;
while(end_point < date.length) {
int start = begin;
while(start < end_point) {
temp = date[start+1];
if (date[start] > temp) {
int k=start;
while(k >= 0 && k >= begin && sw == true) {
if(date[k] >= temp) {
date[k+1] = date[k];
k--;
} else if(date[k] < temp) {
sw = false;
}
}
date[k+1] = temp;
}
sw = true;
start++;
}
end_point = end_point + marge_space;
begin =  begin + marge_space;
}
marge_point = marge_space;
marge_space = marge_space*2;
}
show(date);
}

static void show(int[] N) {
for(int i=0;i<N.length; i++) {
System.out.print(N[i]+"\t");
}
System.out.println();
}

static int[] randmnum(int[] date) {
rand = new Random();
for (int i=0;i<date.length;i++) {
date[i] = rand.nextInt(100);
}
return date;
}
}
 

LRUのアルゴリズム

 投稿者:kkk  投稿日:2018年10月13日(土)18時52分49秒 p469205-ipngn200504niho.hiroshima.ocn.ne.jp
  public class LRU {
public static void main(String[] args) {
int[] date = new int[3];
int[] time = new int[3];
int[] In_date = {1,1,2,3,0,4,5,4,1,6};
Marge_sort set = new Marge_sort();
int count=0;
for (int i=0; i<date.length;i++) {
date[i] = -1;
time[i] = i;
}
for (int i=0; i<In_date.length;i++) {
int point =get_minpoint(time);
time=set_time(time);
if (date[point] == In_date[i]) {
time[point] = time.length-1;
} else {
date[point] = In_date[i];
}
}
set.show(date);
}

static int get_minpoint(int[] N) {
int j=0;
while(N[j] != 0) j++;
return j;
}

static int[] set_time(int[] N) {
for (int i=0;i<N.length;i++) {
if (N[i] != 0) {
N[i] = (N[i]-1);
} else if (N[i] == 0) {
N[i] = N.length-1;
}
}
return N;
}
}
 

バッチプログラム

 投稿者:TSUKA  投稿日:2013年 6月 9日(日)21時01分12秒 KD106169058250.au-net.ne.jp
  上級者の方いらっしゃったら、LINEID 19980325_3628800 におねがいします!

こんなの作ってます!

http://note.chiebukuro.yahoo.co.jp/detail/n178035

 

Java

 投稿者:天空のカナリアメール  投稿日:2011年 8月10日(水)23時38分54秒 ntoska179017.oska.nt.ftth.ppp.infoweb.ne.jp
  javaをかじって数週間の高1です。

誰かskypeで教えてくださる親切な方はコンタクトください。

ID canary7sky
 

Ruby

 投稿者:メール  投稿日:2011年 5月28日(土)17時19分12秒 KD124213246061.ppp-bb.dion.ne.jp
  僕は中2でruby言語を少しかじり始めた程度です。
どうしたら上達などできるのでしょうか?
 

FDフォーマットのサンプルコード

 投稿者:こうすけ  投稿日:2010年 9月 2日(木)02時42分9秒 113x35x237x98.ap113.ftth.ucom.ne.jp
  FD媒体をフォーマットした際に媒体使用履歴管理台帳(Excel)の固定されたセルに
使用日(YYYY/MM/DD)・使用開始時刻(hh:mm)・使用媒体番号(こちらはFDのラベル番号ではなく、媒体の外側に貼付している管理番号です)・使用者ID(数字8桁)・使用者氏名(使用者IDに対する氏名)・使用終了時刻(hh:mm)・使用用途("エラーログ取得"等の固定された文字列)を極力、自動で入力させる方法はありますでしょうか?VBAでサンプルコードがありましたら、どうぞご教示の程、宜しくお願い致します。
 

レンタル掲示板
/10