★★ Java の宿題ここで答えます Part 69 ★★
934 :
デフォルトの名無しさん:2011/02/05(土) 11:48:26
>>934 同梱されている"結果&補足.txt"には
>検索文字 : IP //←キーボードから入力
とあるが、同じく同梱のコード片や
>>934の課題には
>static final String search = " IP"
>プログラム中で定義されている検索文字
入力なのか固定なのか、どっちだ。
936 :
デフォルトの名無しさん:2011/02/06(日) 10:29:35
>>935 すいません
>static final String search = " IP"
は固定で//←キーボードから入力は間違いでした、すいません
>>934 import java.io.*;
import java.util.*;
public class WordAna{
static final String search = "IP";
public static void main(String[] args){
String line, token;
StringTokenizer st;
BufferedReader inFile=null;
System.out.println("検索文字:"+search);
try{
inFile=new BufferedReader(new FileReader("WordData.dat"));
while((line=inFile.readLine())!=null){
st=new StringTokenizer(line,",");
while(st.hasMoreTokens()){
token=st.nextToken().trim();
if(token.contains(search)) System.out.println(token);
}}
}catch(IOException e){
e.printStackTrace();
}finally{
if(inFile!=null) try{ inFile.close(); }catch(IOException ignore){}
}}}
938 :
デフォルトの名無しさん:2011/02/06(日) 19:38:04
>>937 ありがとうございます!動作しました!!
本当にありがとうございました!!!
>>914の課題Aどなたかやっていただけないでしょうか
よろしくおねがいします
>>939 課題@のファイルが文字化けする、課題Aと同じ文字コードでアップしなおしてください。
話はそれから
【 課題 】以下のプログラムを高速化する(再帰呼び出しのままで)
public class HanoiX {
static int ndisk = 6; // 円盤の数
static int movecount = 0; // 円盤の移動回数
static void shift(char a, char b, char c, int n){
if(n==0) {
return;
}
else {
shift(a, c, b, n-1);
movecount++;
System.out.println(movecount + ". move from [" + a + "] to [" + b + "]");
shift(c, b, a, n-1);
}
}
public static void main(String arg[]){
if(arg.length>0) ndisk = Integer.parseInt(arg[0]);
shift('A', 'B', 'C', ndisk);
}
}
【 形態 】1. Javaアプリケーション(main()で開始)
【 期限 】2月11日まで
【 Ver 】java version "1.6.0_22"
【 補足 】再帰を用いたハノイの塔のプログラムです。
再帰がわからず困っています。
どうか、よろしく願いします。
>>942 ウチの古いのでも一瞬で終わるが、どんだけ早くしろと?
>>942 >System.out.println(movecount + ". move from [" + a + "] to [" + b + "]");
を消せ
945 :
942:2011/02/07(月) 23:34:05
すいません、円盤の枚数を6としてますが、円盤の枚数に決まりは無いのでもっと大きな数だとはっきりと違いが出ると思います。
System.out.println(movecount + ". move from [" + a + "] to [" + b + "]");
を消して、最後にmovecountを表示するようにしたところ速くなりました。
この方法以外でこのプログラムを早くするには非再帰で書き直すほかないということでいいのでしょうか?
>>945 どこがどの程度高速になればいいのかによって方法があるさ
例えば経過を残しつつmainのshift呼び出しが早くなればいいのなら、
printlnの箇所でaとbをファイルに書き出すようにする。
一度で2バイト増えてるはずだから、movecountはファイルのサイズの1/2で求まるので
movecount++も要らなくなる。
947 :
942:2011/02/08(火) 23:14:41
上のプログラムからplintlnを抜いたものを見せて、先生に聞いてきたところ
long start = System.currentTimeMillis(); と long stop = System.currentTimeMillis(); でmain内のshiftを囲んで時間を計ってみること
linuxならばjavaのtimeコマンドを用いてもよい
早くするのは表示の部分ではなく計算の部分
非再帰でもかまわないのでもう少し早くなるように
とのことでした。
お手数をおかけしますが、ご教示よろしくお願いします。
public class AAA {
public static void main(String[] args) {
Figure s1 = new Circle();
s1.draw();
}
}
class Type {
public void draw(){
空欄
}else{
throw new RuntimeException("該当図形なし");
}
}
}
class Circle 空欄 {
}
実行結果
○
空欄に入れるものをお願いします このプログラムはTypeクラスから不要なフィールドメソッド
を削除したものです
【課題提示用テンプレ】
【 課題 】
クラスの継承について誤っているものをすべて選べ
(1)サブクラスでは、スーパークラスのメソッドの内、アクセス修飾子がpublicかprotectedのものを継承する。privateのものは修飾しない。
(2)サブクラスでスーパークラスのコンストラクタをオーバーライドするとき、super()はコンストラクタの先頭に書かれなければならない。
(3)サブクラスでスーパークラスのコンストラクタを明に呼ばない場合には、スーパークラスのフィールドを継承できない。
(4)サブクラス型で宣言した変数には、スーパークラスのオブジェクトをキャストせずに代入できる。
(5)アクセス修飾子protectedが付けられたメソッドは、同じパッケージ内のどのクラスからも呼び出すことができる。
(6)アクセス修飾子privateが付けられたフィールドを、それが定義されたクラスのサブクラスから参照できる
(7)Objectクラスは、extendsにより明に継承しなくても、すべてのクラスに自動的に継承される
(8)あるクラスの内部クラスのメソッドに、他のクラスからはアクセスできない
【 形態 】1
【 GUI 4
【 期限 】今日
1 ○ privateのものは修飾しないってなんだ?継承じゃないのか?
2 ○
3 ×
4 ×
5 ○
6 ×
7 ○
8 ×
たぶん
953 :
デフォルトの名無しさん:2011/02/11(金) 01:32:47
954 :
デフォルトの名無しさん:2011/02/11(金) 10:48:31
955 :
デフォルトの名無しさん:2011/02/11(金) 10:55:46
【 課題 】ネットワークを使用したプログラムを作成
【 形態 】Javaアプリケーション(main()で開始)
【 GUI 】 制限なし
【 期限 】2月12日
【 Ver 】java version "1.5.0_26"
【 補足 】サーバーを作り、そこにtelnetで接続してというプログラムです。例として、英単語に対応する日本語もったサーバを作り、クライアントから送られてきた単語に対応する日本語を送り出すものです。
ほかに、チャットサーバーをつくり、接続済みのクライアント全てにデータを流すというものなどです。
母さんが倒れて課題をやる暇がなくて卑怯だとおもう...でも間に合いそうにない;どうか、手を貸していただきたい。
もしできあがられましたら、deal_of_deal.yahoo.co.jpのほうへプログラムを書いて送ってくださいorz
どうも最後の2行で意欲が失われる
たくさんの血を吐き出しながら母さんは息絶えました
2. 書かなくても自動的に補完される、とかsuper(x,y)とか別の書式もありうるとかそういう意味かなぁ?
5. は同一パッケージからでも a() を呼び出せないよね。
class Test {
private class Test2 {
protected void a(){
System.out.println("a");
}
}
}
960 :
デフォルトの名無しさん:2011/02/12(土) 00:51:29
>>958 2は、デフォルトのコンストラクタは明示的に実装しなくても必ず呼ばれる
5は、デフォルトのメソッドの記述だな
携帯から打つの面倒だから詳しくは省略するが試しに実装してみれ
961 :
デフォルトの名無しさん:2011/02/12(土) 00:54:55
ごめん2はあってた
962 :
デフォルトの名無しさん:2011/02/12(土) 01:02:38
ごめんすごい勘違いしてた(笑)
あってました
間違っているのは
> コンストラクタをオーバーライド
なんてできないこと
public class Sub extends Super {
@Override public Super() {...
とかやるつもりなのか?
出題者のレベルが疑われるな
965 :
デフォルトの名無しさん:2011/02/14(月) 15:56:04
【課題】
ttp://www.ailab.tj.chiba-u.jp/~hory/java2010/101221/101221.html 【形態】javaアプリケーション(main()で開始)だと思います。
【期限】明日提出なので、今日中でお願いします。
【ver】1.6.0_21
【補足】キーボードの上下左右によって、その方向に動かせる
プログラムにしようと思っています。それだけでは
なんなので、画面外に出ると真ん中の最初の位置に
戻るというのはできるでしょうか?
サンプルでは落ちたら落ちっぱなしだったようなので。
欲を言えば、イライラ棒のようなものが作れたら
いいと思います。障害物があって、触れると戻される
という感じです。
採点対象なので、プログラム中のコメントを詳しく
書いていただけるとありがたいです。
よろしくお願いします。
966 :
デフォルトの名無しさん:2011/02/14(月) 16:44:48
>>965 サンプルプログラムの動きのシュールさにワロタ
なんでこう、同じ課題をぽこぽこと…
970 :
デフォルトの名無しさん:2011/02/15(火) 22:43:07
>>970 ソースも全部ないし問題文もないし
何をしたいのか分かりません
>>970 main メソッドが長すぎるのが問題かもね。
mainはvoidだから値が返せない件
質問者の他の質問傾向から見てもAOJ絡みっぽい。AOJでなくともプログラムのオンラインジャッジ系。
Javaっぽくないエラー原因は判定がRuntime Errorの時のサイトの説明文をそのままコピペしてるだけだから。
ソースとしてC/C++とJavaの両方で受け付けてるのでC/C++で起こり得る原因についても記述されている。
サイトの性質上あまりパブリックな場で質問するのは問題がある気もするけど。
それともそういう方法による情報取得のリテラシーも含めてのジャッジなのか?
まぁ、答は出ないというだけだ
976 :
965:2011/02/16(水) 13:23:37
>>953
メールしろとは身勝手にもほどがある。
>>955
やむを得ない事情だというのなら、そっくり採点者に言えよ。
978 :
デフォルトの名無しさん:2011/02/25(金) 09:54:36.28
【 課題 】Miller-Rabin法により,10進数で47桁のランダムな素数を
確率1−(1/10)^9で作成するプログラムとプログラムの簡単な
アルゴリズムの説明をよろしくお願いします。
【 期限 】26日中です。
【 補足 】「BigInteger classを使う。
ランダムな素数とは、プログラムを実行するたびに10^46〜10^47-1
の範囲にある素数がランダムに出力されるということ。
BigInteger(int bitLength, int certainry, Random rnd)
probablePrime(int bitLength, Random rnd)
nextProbablePrime()
isProbablePrime(int certainty)
これらのconstructor,methodを使ってはいけない。
他のconstructor,methodは何でも使って良い。」
留年がかかってますので、何卒よろしくお願いします。
>>978 就職も厳しいので、ここは留年すると言う手で
980 :
デフォルトの名無しさん:2011/02/25(金) 20:56:57.99
今日は忙しいから
明日暇ならやるわ
981 :
デフォルトの名無しさん:2011/02/25(金) 22:00:30.08
>>979 ごめんなさい。これ以上留年したくないんで勘弁してください。
>>980 ありがとうございます!ぜひよろしくおねがいします!
>>979 再留年して時間を確保して、自分の納得のいく就職活動がんばったほうがいいよね
新卒カードを無駄にしないためにもw
みんな読解力ないなぁ。
かかっているのは卒業とか進級じゃなく留年。
何を目指して質問しているか理解してから答えないと。