プログラミングのお題スレです。
【出題と回答例】
1 名前:デフォルトの名無しさん
お題:お題本文
2 名前:デフォルトの名無しさん
>>1 使用言語
回答本文
結果がある場合はそれも
【ソースコードが長くなったら】 (オンラインでコードを実行できる)
https://ideone.com/
http://codepad.org/
http://compileonline.com/
http://rextester.com/runcode
https://runnable.com/
https://code.hackerearth.com/
http://melpon.org/wandbox
https://paiza.io/
宿題は宿題スレがあるのでそちらへ。
※前スレ
プログラミングのお題スレ Part21
https://mevius.5ch.net/test/read.cgi/tech/1668333636/
プログラミングのお題スレ Part22
1デフォルトの名無しさん
2023/08/03(木) 13:52:13.20ID:/xW45k0z420デフォルトの名無しさん
2024/09/03(火) 10:17:03.41ID:HQsZJT0t421デフォルトの名無しさん
2024/09/03(火) 13:27:22.48ID:Jxau6mSM >>418
Windowsは不断使いしていないんで開発環境とかemacsとかはわからないけど、動かすだけなら
https://www.sbcl.org/platform-table.html からWindows版のSBCLインストーラーを落としてインストール
コマンドプロンプトなどのコマンド行で
sbcl --script ファイル名 とすると「ファイル名」のファイルをスクリプトとして実行します
--script を付けない場合REPLが起動します(Pythonでいうところの対話モード)
これの終了は (quit) と入力してEnterキー
Windowsは不断使いしていないんで開発環境とかemacsとかはわからないけど、動かすだけなら
https://www.sbcl.org/platform-table.html からWindows版のSBCLインストーラーを落としてインストール
コマンドプロンプトなどのコマンド行で
sbcl --script ファイル名 とすると「ファイル名」のファイルをスクリプトとして実行します
--script を付けない場合REPLが起動します(Pythonでいうところの対話モード)
これの終了は (quit) と入力してEnterキー
422デフォルトの名無しさん
2024/09/03(火) 13:38:16.60ID:Jxau6mSM ちょっと試すだけならウェブサービスを使う手も
Common Lispを動かせるオンラインコンパイラーサイト
https://rextester.com/l/common_lisp_online_compiler
https://www.jdoodle.com/execute-clisp-online
https://wandbox.org/
これらはideoneとは異なり "Share" とか "Save" とかをクリックしない限り保存・公開されない(はず)
Common Lispを動かせるオンラインコンパイラーサイト
https://rextester.com/l/common_lisp_online_compiler
https://www.jdoodle.com/execute-clisp-online
https://wandbox.org/
これらはideoneとは異なり "Share" とか "Save" とかをクリックしない限り保存・公開されない(はず)
423デフォルトの名無しさん
2024/09/03(火) 22:13:24.20ID:HQsZJT0t レス頂いた方、ありがとうございます
とりあえず>>422辺りで試してみます
とりあえず>>422辺りで試してみます
424デフォルトの名無しさん
2024/09/04(水) 03:34:25.27ID:k+9kMn3u REM zorome.bat
ruby -x "%~f0"
exit
#~
#!ruby
while 1
print "input a > "
a=$stdin.gets.chomp
exit if a==""
a=a.to_i
print "input b > "
b=$stdin.gets.to_i
ar=(a..b).to_a
z=0
ar.each{|e|
n=e.to_s.gsub(/^-/,"")
m=n.split("").uniq
if n.size>1 && m.size==1
z=1
break
end
}
ar=[] if z==1
p ar
end
__END__
a=0;b=10 => [0,1,2,3,4,5,6,7,8,9,10]
a=0;b=11 => []
ruby -x "%~f0"
exit
#~
#!ruby
while 1
print "input a > "
a=$stdin.gets.chomp
exit if a==""
a=a.to_i
print "input b > "
b=$stdin.gets.to_i
ar=(a..b).to_a
z=0
ar.each{|e|
n=e.to_s.gsub(/^-/,"")
m=n.split("").uniq
if n.size>1 && m.size==1
z=1
break
end
}
ar=[] if z==1
p ar
end
__END__
a=0;b=10 => [0,1,2,3,4,5,6,7,8,9,10]
a=0;b=11 => []
425デフォルトの名無しさん
2024/09/04(水) 06:34:37.52ID:FQ5fjJ2m >>416
fn is_zorome(n: i32) -> bool {
let s = n.abs().to_string();
let b = s.as_bytes();
if b.len() > 1 {
b[1..].iter().all(|&d| d == b[0])
} else {
false
}
}
fn odai(a: i32, b: i32) -> Vec<i32> {
if (a..=b).any(|n| is_zorome(n)) {
vec![]
} else {
(a..=b).collect()
}
}
fn main() {
assert_eq!(odai(1, 10), [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
assert_eq!(odai(1, 11), []);
}
fn is_zorome(n: i32) -> bool {
let s = n.abs().to_string();
let b = s.as_bytes();
if b.len() > 1 {
b[1..].iter().all(|&d| d == b[0])
} else {
false
}
}
fn odai(a: i32, b: i32) -> Vec<i32> {
if (a..=b).any(|n| is_zorome(n)) {
vec![]
} else {
(a..=b).collect()
}
}
fn main() {
assert_eq!(odai(1, 10), [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);
assert_eq!(odai(1, 11), []);
}
426 警備員[Lv.7]
2024/09/29(日) 14:12:38.24ID:Sdg7KlJR >>416
Kotlin
(URL投稿禁止になってるようなので先頭の https:// は抜きで)。
paiza.io/projects/nPK7U1uDtt4b7O2saECP0A
[入力]タブの方で開始、終了の値を入れている。とりあえず 10 40 を入れてある。
一桁の数を指定した場合は全てゾロ目扱いになるので出力は空のリストになる。
Kotlin
(URL投稿禁止になってるようなので先頭の https:// は抜きで)。
paiza.io/projects/nPK7U1uDtt4b7O2saECP0A
[入力]タブの方で開始、終了の値を入れている。とりあえず 10 40 を入れてある。
一桁の数を指定した場合は全てゾロ目扱いになるので出力は空のリストになる。
427デフォルトの名無しさん
2024/10/08(火) 17:17:22.09ID:CS1PHEoT お題:文字列を中央寄せする関数を作れ。
関数は文字列、全体の横幅(整数)、余白を埋める文字、を引数に取る。横幅分の文字列を引数の文字で作成し、その中央に引数の文字列を埋め込み戻り値として返せ。
関数は文字列、全体の横幅(整数)、余白を埋める文字、を引数に取る。横幅分の文字列を引数の文字で作成し、その中央に引数の文字列を埋め込み戻り値として返せ。
428デフォルトの名無しさん
2024/10/08(火) 19:52:28.65ID:Rq2an05y py
text.center
text.center
429 警備員[Lv.12]
2024/10/09(水) 00:07:23.87ID:O5zCFPJO >>427
文字幅についてはどう考えれば良い?
エンコーディングが UTF-8 や UTF-16 だとバイト数や要素数が画面の表示幅と一致しないわけだが。
一致するような Shift-JIS だったとしても端末のフォント設定次第で表示幅が変わる。
文字幅についてはどう考えれば良い?
エンコーディングが UTF-8 や UTF-16 だとバイト数や要素数が画面の表示幅と一致しないわけだが。
一致するような Shift-JIS だったとしても端末のフォント設定次第で表示幅が変わる。
430デフォルトの名無しさん
2024/10/09(水) 00:38:16.24ID:j8RLE5Fj EUCにも半角2バイト文字なんてあったりする
431デフォルトの名無しさん
2024/10/09(水) 00:56:06.70ID:LtADXZKH asciiの前提では
全角判定関数は切り分けるべきだし
全角判定関数は切り分けるべきだし
432デフォルトの名無しさん
2024/10/09(水) 01:18:55.72ID:4B3K5XUV #ドラクエ3が超好きだったので、お題にしてみる。ただしロト3のファミコン版のドラクエな!w
"こちらの職業は勇者、戦士、空手家、僧侶、柔道家の5人がかりw
勇者から柔道家までの5人の攻撃回数が異なります。"まずは変数と確率の問題。
勇者=you戦士=sen,空手家=kara,僧侶=sou
まず勇者は1~2回攻撃、戦士は1~3回攻撃、空手は2~3回攻撃、柔道は足払いで相手を20%で麻痺させることができる。(1ターン何もできない)10%では超麻痺。(2ターン何も敵は動かない)
5%でクリティカルヒットの足払いで3ターン敵は何もできない。
柔道は敵に攻撃を加えられない分、足払いで相手を痙攣させる。
(勇者の1回分の攻撃は100〜200、20%の確率でクリティカルヒットの攻撃になることがある。
(戦士の攻撃は200〜300、20%の確率で攻撃がクリティカルヒット1回になることがある。
(空手家)空手家の攻撃は350〜500、ただし20%の確率で攻撃がクリティカルヒットとなるときがある。youはぞろ目(111とか222とか999まで)の場合はロトの剣を取得する。
攻撃回数無限で全てクリティカルヒットになります。
クリティカルヒットは攻撃力X2です。さてプログラムをやっていくか。"
*ただし、ロトの剣は勇者しか使えない。
”まずギルガメッシュっていう名前のenemy
ラスボスの名前はenemyとする。ボスのHPは5万。
ボスは基本的に何もしません、できません。これやるとさすがに面倒なのでw
基本的にボスは攻撃しません。(面倒だからw)
一方的になかまあつめてボコすw”
*ロトの剣で攻撃したら攻撃力が1.5倍あがります。*
**癒しの穂。食べたら防御力と賢さがあがります**
ロトの剣の出現条件は3並びで一つ食べることができます。
例えば111攻撃とか222攻撃とか333攻撃とか〜999まで。
次の発言からコードを書いていく。
ニーズあるか?
"こちらの職業は勇者、戦士、空手家、僧侶、柔道家の5人がかりw
勇者から柔道家までの5人の攻撃回数が異なります。"まずは変数と確率の問題。
勇者=you戦士=sen,空手家=kara,僧侶=sou
まず勇者は1~2回攻撃、戦士は1~3回攻撃、空手は2~3回攻撃、柔道は足払いで相手を20%で麻痺させることができる。(1ターン何もできない)10%では超麻痺。(2ターン何も敵は動かない)
5%でクリティカルヒットの足払いで3ターン敵は何もできない。
柔道は敵に攻撃を加えられない分、足払いで相手を痙攣させる。
(勇者の1回分の攻撃は100〜200、20%の確率でクリティカルヒットの攻撃になることがある。
(戦士の攻撃は200〜300、20%の確率で攻撃がクリティカルヒット1回になることがある。
(空手家)空手家の攻撃は350〜500、ただし20%の確率で攻撃がクリティカルヒットとなるときがある。youはぞろ目(111とか222とか999まで)の場合はロトの剣を取得する。
攻撃回数無限で全てクリティカルヒットになります。
クリティカルヒットは攻撃力X2です。さてプログラムをやっていくか。"
*ただし、ロトの剣は勇者しか使えない。
”まずギルガメッシュっていう名前のenemy
ラスボスの名前はenemyとする。ボスのHPは5万。
ボスは基本的に何もしません、できません。これやるとさすがに面倒なのでw
基本的にボスは攻撃しません。(面倒だからw)
一方的になかまあつめてボコすw”
*ロトの剣で攻撃したら攻撃力が1.5倍あがります。*
**癒しの穂。食べたら防御力と賢さがあがります**
ロトの剣の出現条件は3並びで一つ食べることができます。
例えば111攻撃とか222攻撃とか333攻撃とか〜999まで。
次の発言からコードを書いていく。
ニーズあるか?
433デフォルトの名無しさん
2024/10/09(水) 01:22:59.53ID:YvVjSPhZ プログラミングする以前に読むのが面倒くさい
434デフォルトの名無しさん
2024/10/09(水) 01:43:57.73ID:4B3K5XUV しまった。初期化してなかったなw変数のところ。
あとsouの回復もホイミ、ベホイミ、ベホマラーの3種類だけ。
その3種類がぞろ目の時(111,222など)
そしたらベホマズンを使える。ほぼ運ゲーですw
人修羅みたいに取り巻きがいます。それはバラモスエビルと神龍です。
ある一定時期を過ぎると取り巻きが一斉にHPを連続してあげまくるので
取り巻き先に倒さないと厳しいです。取り巻き=tori種類1の取り巻き=tori0
種類2の取り巻き=tori1 5人だとなかなか倒せないから6人目の魔法剣士=maken
だれか
これをいれよう。
さてif文を完成させよう!if zoma =1
print("ゾーマが現れた”)
import random
random.random()x = random.uniform(0.1,0.9)
print(x)
if x >200 :
print( 'enemyに' +200のダメージを与えた)
elif x > 0.5 :
print( 'enemyに100+のダメージを与えた' )
elif x > 0.2 :
print( '相手が躱した' )
else :
print( "まだゾーマは死んでません")
つかれたーw
もっと簡単なやつにしまーすw
あとsouの回復もホイミ、ベホイミ、ベホマラーの3種類だけ。
その3種類がぞろ目の時(111,222など)
そしたらベホマズンを使える。ほぼ運ゲーですw
人修羅みたいに取り巻きがいます。それはバラモスエビルと神龍です。
ある一定時期を過ぎると取り巻きが一斉にHPを連続してあげまくるので
取り巻き先に倒さないと厳しいです。取り巻き=tori種類1の取り巻き=tori0
種類2の取り巻き=tori1 5人だとなかなか倒せないから6人目の魔法剣士=maken
だれか
これをいれよう。
さてif文を完成させよう!if zoma =1
print("ゾーマが現れた”)
import random
random.random()x = random.uniform(0.1,0.9)
print(x)
if x >200 :
print( 'enemyに' +200のダメージを与えた)
elif x > 0.5 :
print( 'enemyに100+のダメージを与えた' )
elif x > 0.2 :
print( '相手が躱した' )
else :
print( "まだゾーマは死んでません")
つかれたーw
もっと簡単なやつにしまーすw
435デフォルトの名無しさん
2024/10/09(水) 01:45:35.37ID:YvVjSPhZ 頑張って読んだけどこのままでは多分スレチ、ずっと条件を簡単にして出題し直してみる。
お題
勇者(HP1000)対魔王(HP5000)、先鋒勇者、サイコロ(目は1から6)を振って出た目だけ相手にダメージを与えられ、交互に攻撃しHP0となったら負け。魔王のサイコロは1個だけど勇者のサイコロはN個(N=1~10)の時の勇者の勝率を求めよ。
お題
勇者(HP1000)対魔王(HP5000)、先鋒勇者、サイコロ(目は1から6)を振って出た目だけ相手にダメージを与えられ、交互に攻撃しHP0となったら負け。魔王のサイコロは1個だけど勇者のサイコロはN個(N=1~10)の時の勇者の勝率を求めよ。
436デフォルトの名無しさん
2024/10/09(水) 02:10:34.29ID:4B3K5XUV # RPGの攻撃状況を再現
# モンスターと戦っている。
# 1から10のサイコロをふって、
# 6未満の場合、サイコロの目だけダメージを与えたと表示。
# 6以上の場合、クリティカルヒットとして、100のダメージを与えたと表示。
# 0の場合、防御されたとして、0ダメージを表示。
import random
hit = random.randint(0,10)
if 1 <= hit < 6:
print("スライムに、" + str(hit) + "のダメージを与えた!")
elif hit >= 6:
print("クリティカルヒットダメージ100を与えた")
else:
print("ダメージは、" + str(hit) + "防御された")
#楽しすぎだなwこれはw
# モンスターと戦っている。
# 1から10のサイコロをふって、
# 6未満の場合、サイコロの目だけダメージを与えたと表示。
# 6以上の場合、クリティカルヒットとして、100のダメージを与えたと表示。
# 0の場合、防御されたとして、0ダメージを表示。
import random
hit = random.randint(0,10)
if 1 <= hit < 6:
print("スライムに、" + str(hit) + "のダメージを与えた!")
elif hit >= 6:
print("クリティカルヒットダメージ100を与えた")
else:
print("ダメージは、" + str(hit) + "防御された")
#楽しすぎだなwこれはw
437デフォルトの名無しさん
2024/10/09(水) 18:59:48.61ID:Vd16zyId >>429
asciiで。
asciiで。
438デフォルトの名無しさん
2024/10/11(金) 05:53:27.29ID:EzY86rdr お題:文字列の中で1つ以上連続している空白をすべて空白4つに置換せよ。ただし正規表現は使ってはならない。
例:
"abc def ghi" -> "abc def ghi"
例:
"abc def ghi" -> "abc def ghi"
439438
2024/10/11(金) 05:54:39.00ID:EzY86rdr 5chは空白を1つに置換するらしく例は出せない。脳内保管せよ。
440デフォルトの名無しさん
2024/10/11(金) 20:53:22.06ID:BlO5cFoG441デフォルトの名無しさん
2024/10/11(金) 20:58:31.10ID:BlO5cFoG442デフォルトの名無しさん
2024/10/11(金) 22:15:53.82ID:H5F5jhxE443デフォルトの名無しさん
2024/10/12(土) 01:34:10.91ID:OB4ycmPb >>435
こういう場合の確率の計算はよく分からなかったので実際にそれぞれ一万回ずつ戦わせてみた。
サイコロ1個で100000戦0勝
サイコロ2個で100000戦0勝
サイコロ3個で100000戦0勝
サイコロ4個で100000戦0勝
サイコロ5個で100000戦47171勝
サイコロ6個で100000戦100000勝
サイコロ7個で100000戦100000勝
サイコロ8個で100000戦100000勝
サイコロ9個で100000戦100000勝
サイコロ10個で100000戦100000勝
こういう場合の確率の計算はよく分からなかったので実際にそれぞれ一万回ずつ戦わせてみた。
サイコロ1個で100000戦0勝
サイコロ2個で100000戦0勝
サイコロ3個で100000戦0勝
サイコロ4個で100000戦0勝
サイコロ5個で100000戦47171勝
サイコロ6個で100000戦100000勝
サイコロ7個で100000戦100000勝
サイコロ8個で100000戦100000勝
サイコロ9個で100000戦100000勝
サイコロ10個で100000戦100000勝
444デフォルトの名無しさん
2024/10/12(土) 01:39:02.69ID:OB4ycmPb >>443
#!ruby
#encoding: utf-8
$stdout=open("kekka.txt","w")
i=100000 #対戦回数
k=0 #勇者の勝ち
n=1 #勇者のサイコロの数
hpm=5000 #魔王のHP
hpy=1000 #勇者のHP
#!ruby
#encoding: utf-8
$stdout=open("kekka.txt","w")
i=100000 #対戦回数
k=0 #勇者の勝ち
n=1 #勇者のサイコロの数
hpm=5000 #魔王のHP
hpy=1000 #勇者のHP
445デフォルトの名無しさん
2024/10/12(土) 01:39:40.49ID:OB4ycmPb >>444
while n<=10
j,t=0,0
while j<i
hpy-=rand(1..6)
if hpy<=0
j+=1
t,hpy,hpm=0,1000,5000
next
end
m=0
while m<n
hpm-=rand(1..6)
m+=1
end
if hpm<=0
k+=1
j+=1
t,hpy,hpm=0,1000,5000
next
end
t+=1
end
puts "サイコロ#{n}個で#{i}戦#{k}勝"
k,hpy,hpm=0,1000,5000
n+=1
end
while n<=10
j,t=0,0
while j<i
hpy-=rand(1..6)
if hpy<=0
j+=1
t,hpy,hpm=0,1000,5000
next
end
m=0
while m<n
hpm-=rand(1..6)
m+=1
end
if hpm<=0
k+=1
j+=1
t,hpy,hpm=0,1000,5000
next
end
t+=1
end
puts "サイコロ#{n}個で#{i}戦#{k}勝"
k,hpy,hpm=0,1000,5000
n+=1
end
446 警備員[Lv.12]
2024/11/05(火) 05:27:21.14ID:srt1vo+S >>427
Kotlin
スペースが何個なのか分り易くするために '*' をスペースの代わりに入れて呼び出している。
https://paiza.io/projects/xSP0nP203HXTwqyxlQD0Gg
Kotlin
スペースが何個なのか分り易くするために '*' をスペースの代わりに入れて呼び出している。
https://paiza.io/projects/xSP0nP203HXTwqyxlQD0Gg
447デフォルトの名無しさん
2024/11/13(水) 22:01:15.62ID:nRkxNwtG >>435
R
f=\(N){
u=1000
m=5000
while(u>0 & m>0){
m=m-sum(sample(6,N,replace=TRUE))
u=u-sample(6,1)
}
u>m
}
sim=\(N) mean(replicate(1e3,f(N)))
p=sapply(1:10,sim)
plot(p)
data.frame(N=1:10,p=p)
N p
1 1 0.000
2 2 0.000
3 3 0.000
4 4 0.000
5 5 0.498
6 6 1.000
7 7 1.000
8 8 1.000
9 9 1.000
10 10 1.000
R
f=\(N){
u=1000
m=5000
while(u>0 & m>0){
m=m-sum(sample(6,N,replace=TRUE))
u=u-sample(6,1)
}
u>m
}
sim=\(N) mean(replicate(1e3,f(N)))
p=sapply(1:10,sim)
plot(p)
data.frame(N=1:10,p=p)
N p
1 1 0.000
2 2 0.000
3 3 0.000
4 4 0.000
5 5 0.498
6 6 1.000
7 7 1.000
8 8 1.000
9 9 1.000
10 10 1.000
448デフォルトの名無しさん
2024/11/13(水) 22:22:31.42ID:nRkxNwtG >>435
Wolfram
f[N_] :=(
u=1000;
m=5000;
Until[u<=0 || m<=0, m-=Total@RandomChoice[Range[6],N];u-=Total@RandomChoice[Range[6],1]];
Boole[u >= m]
)
Table[Mean@Table[f[x],10^3],{x,1,10}] // N
{0., 0., 0., 0., 0.511, 1., 1., 1., 1., 1.}
Wolfram
f[N_] :=(
u=1000;
m=5000;
Until[u<=0 || m<=0, m-=Total@RandomChoice[Range[6],N];u-=Total@RandomChoice[Range[6],1]];
Boole[u >= m]
)
Table[Mean@Table[f[x],10^3],{x,1,10}] // N
{0., 0., 0., 0., 0.511, 1., 1., 1., 1., 1.}
449デフォルトの名無しさん
2024/12/31(火) 22:33:49.84ID:5KitXLte ベクターにあるこれを解いてくれ
昔2ch、5chスレでやってたができず
いまだと4x4はパワーで行けるとおもうが
4x4盤タイルゲーム for Windows
対戦するたびに学習して次第に強くなる「最善手探索+対戦学習型知能ゲーム」
昔2ch、5chスレでやってたができず
いまだと4x4はパワーで行けるとおもうが
4x4盤タイルゲーム for Windows
対戦するたびに学習して次第に強くなる「最善手探索+対戦学習型知能ゲーム」
450デフォルトの名無しさん
2025/01/01(水) 12:58:01.50ID:emEmRiID 他力本願か?
451デフォルトの名無しさん
2025/01/01(水) 13:30:44.19ID:WMbw73Fu 出題の仕方でプログラミング能力の無さがわかる
452デフォルトの名無しさん
2025/01/01(水) 13:32:50.17ID:ZpviU2f/453デフォルトの名無しさん
2025/01/01(水) 13:54:47.38ID:ZpviU2f/454デフォルトの名無しさん
2025/01/01(水) 15:04:31.04ID:ZpviU2f/455デフォルトの名無しさん
2025/01/01(水) 18:14:11.44ID:X9RQ0R0S456デフォルトの名無しさん
2025/01/01(水) 19:18:52.94ID:ZpviU2f/457デフォルトの名無しさん
2025/01/01(水) 19:35:45.17ID:ZpviU2f/458デフォルトの名無しさん
2025/01/01(水) 20:12:46.32ID:ZpviU2f/459デフォルトの名無しさん
2025/01/01(水) 20:32:30.47ID:ZpviU2f/460 警備員[Lv.16]
2025/01/02(木) 03:06:13.48ID:PSAM74+n461 警備員[Lv.16]
2025/01/02(木) 03:15:13.97ID:PSAM74+n462デフォルトの名無しさん
2025/01/02(木) 10:05:16.72ID:gED46q9T >>461
最善手だったら先手の勝ちかどうか
最善手だったら先手の勝ちかどうか
463デフォルトの名無しさん
2025/01/02(木) 16:25:40.35ID:H7SLSd6p464デフォルトの名無しさん
2025/01/03(金) 13:22:57.82ID:dEYOS8Dq お題
AのあとbノAと同じ数だけBが続く言語エビがあるとします
文字列が入力されたときそれがエビ言語であるか判定するプログラムを作成してください
→ true
A → false
B → false
AB → true
ABB → false
AAB → false
AABB → true
ABAABBAAABBB→ true
AのあとbノAと同じ数だけBが続く言語エビがあるとします
文字列が入力されたときそれがエビ言語であるか判定するプログラムを作成してください
→ true
A → false
B → false
AB → true
ABB → false
AAB → false
AABB → true
ABAABBAAABBB→ true
465デフォルトの名無しさん
2025/01/03(金) 13:25:00.11ID:dEYOS8Dq466デフォルトの名無しさん
2025/01/03(金) 15:30:14.42ID:aGLRGnDr467デフォルトの名無しさん
2025/01/03(金) 15:34:16.34ID:aGLRGnDr468デフォルトの名無しさん
2025/01/03(金) 17:52:02.97ID:aGLRGnDr >>464 lisp (chatgptに教えてもらった)
https://ideone.com/UYK3Qu
https://chatgpt.com/share/67778c2d-647c-8011-96dd-954a8f0fba92
https://ideone.com/UYK3Qu
https://chatgpt.com/share/67778c2d-647c-8011-96dd-954a8f0fba92
469デフォルトの名無しさん
2025/01/03(金) 20:07:57.67ID:yesC/P5F >>464
fn is_ab_lang(input: &str) -> bool {
match input
.chars()
.fold(Some(0), |state, char| match (state, char) {
(Some(count), 'A') => Some(count + 1),
(Some(count), 'B') if count > 0 => Some(count - 1),
_ => None,
}) {
Some(0) => true,
_ => false,
}
}
fn main() {
for s in ["", "AB", "AABB", "ABAABBAAABBB"] {
assert!(is_ab_lang(s)); // true
}
for s in ["A", "B", "BA", "ABB", "AAB", "ABBA"] {
assert!(!is_ab_lang(s)); // false
}
}
fn is_ab_lang(input: &str) -> bool {
match input
.chars()
.fold(Some(0), |state, char| match (state, char) {
(Some(count), 'A') => Some(count + 1),
(Some(count), 'B') if count > 0 => Some(count - 1),
_ => None,
}) {
Some(0) => true,
_ => false,
}
}
fn main() {
for s in ["", "AB", "AABB", "ABAABBAAABBB"] {
assert!(is_ab_lang(s)); // true
}
for s in ["A", "B", "BA", "ABB", "AAB", "ABBA"] {
assert!(!is_ab_lang(s)); // false
}
}
470デフォルトの名無しさん
2025/01/03(金) 23:45:21.31ID:AD9nWeeV >>464 c
https://ideone.com/KDcKNc
#include <stdio.h>
#include <string.h>
int isablang(const char *s) {
size_t a = strspn(s, "A"), b = strspn(s + a, "B");
return !*s || 0 < a && 0 < b && a == b && isablang(s + a + b);
}
void g(const char *s) {
printf("%s\t%s\n", isablang(s) ? "true" : "false", s);
}
int main() {
g("A"), g("B"), g("C"), g("BA"), g("CA"), g("ABB"), g("AAB"), g("AABABB"), g("ABC"), g("CAB"), g("ABCAB");
g(""), g("AB"), g("ABAB"), g("AABB");
return 0;
}
https://ideone.com/KDcKNc
#include <stdio.h>
#include <string.h>
int isablang(const char *s) {
size_t a = strspn(s, "A"), b = strspn(s + a, "B");
return !*s || 0 < a && 0 < b && a == b && isablang(s + a + b);
}
void g(const char *s) {
printf("%s\t%s\n", isablang(s) ? "true" : "false", s);
}
int main() {
g("A"), g("B"), g("C"), g("BA"), g("CA"), g("ABB"), g("AAB"), g("AABABB"), g("ABC"), g("CAB"), g("ABCAB");
g(""), g("AB"), g("ABAB"), g("AABB");
return 0;
}
471デフォルトの名無しさん
2025/01/04(土) 14:03:19.07ID:uiECOsgP >>468
ChatGPTロジックだとAABABBが受理されちゃう
ChatGPTロジックだとAABABBが受理されちゃう
472468
2025/01/04(土) 15:43:19.87ID:RKGS1C18 あら
ちょっとだけ修正すれば…って、無理か
ちょっとだけ修正すれば…って、無理か
473デフォルトの名無しさん
2025/01/04(土) 16:26:18.49ID:kbkaPDs8 >>464 c
https://ideone.com/x7a81M
・strspn使わない
・再帰しない
#include <stdio.h>
int isablang(const char *s) {
const char *t, *u;
for (; *s; s = u) {
if (*s != 'A') return 0; else for (t = s; *t == 'A'; t++);
if (*t != 'B') return 0; else for (u = t; *u == 'B'; u++);
if (t - s != u - t) return 0;
}
return 1;
}
https://ideone.com/x7a81M
・strspn使わない
・再帰しない
#include <stdio.h>
int isablang(const char *s) {
const char *t, *u;
for (; *s; s = u) {
if (*s != 'A') return 0; else for (t = s; *t == 'A'; t++);
if (*t != 'B') return 0; else for (u = t; *u == 'B'; u++);
if (t - s != u - t) return 0;
}
return 1;
}
474デフォルトの名無しさん
2025/01/04(土) 21:19:41.74ID:uiECOsgP お題
貨幣・銀行券を次の文字列で表すとします
(1)
(5)
(10)
(50)
(100)
(500)
[1000]
[5000]
[10000]
貨幣・銀行券がランダムに次のような文字列で与えられます
(100)(10)(1)[10000](5)(500)[1000][5000][1000][1000](10)(100)(50)(100)[1000]
与えられた貨幣・銀行券を分類して貨幣・銀行券の価値が高い順に次のように出力するプログラムを作成してください
[10000]
[5000]
[1000][1000][1000][1000]
(500)
(100)(100)(100)
(50)
(10)(10)
(5)
(1)
貨幣・銀行券を次の文字列で表すとします
(1)
(5)
(10)
(50)
(100)
(500)
[1000]
[5000]
[10000]
貨幣・銀行券がランダムに次のような文字列で与えられます
(100)(10)(1)[10000](5)(500)[1000][5000][1000][1000](10)(100)(50)(100)[1000]
与えられた貨幣・銀行券を分類して貨幣・銀行券の価値が高い順に次のように出力するプログラムを作成してください
[10000]
[5000]
[1000][1000][1000][1000]
(500)
(100)(100)(100)
(50)
(10)(10)
(5)
(1)
475デフォルトの名無しさん
2025/01/04(土) 22:52:21.99ID:frbzLXtQ476デフォルトの名無しさん
2025/01/05(日) 03:39:43.83ID:/228f09V477デフォルトの名無しさん
2025/01/05(日) 21:35:39.46ID:6Z+55hA8478 警備員[Lv.18]
2025/01/12(日) 04:14:11.28ID:zWON4EbF479 警備員[Lv.18]
2025/01/12(日) 04:47:49.98ID:zWON4EbF480デフォルトの名無しさん
2025/01/12(日) 17:40:12.54ID:Mt0OVaIB 4*4タイルゲームをAIに命令させてやらせているが
それっぽいのを出力はするが正しい勝利判定ができていない
それっぽいのを出力はするが正しい勝利判定ができていない
481デフォルトの名無しさん
2025/01/13(月) 13:03:01.90ID:mFwJihvQ482デフォルトの名無しさん
2025/01/13(月) 20:43:35.02ID:zlmvetys4839
2025/01/20(月) 01:11:38.35ID:zWVP8H/r >>474 Perl5
$s = '(100)(10)(1)[10000](5)(500)[1000][5000][1000][1000](10)(100)(50)(100)[1000]';
$h{$_} .= $_ for $s =~ /\(\d+\)|\[\d+\]/g;
use List::Util 'sum';
$v{$h{$_}} = sum($h{$_} =~ /\d+/g) for keys %h;
print "$_\n" for sort{$v{$b} <=> $v{$a}} keys %v;
実行結果
~ $ perl 22_474_value.pl
[10000]
[5000]
[1000][1000][1000][1000]
(500)
(100)(100)(100)
(50)
(10)(10)
(5)
(1)
$s = '(100)(10)(1)[10000](5)(500)[1000][5000][1000][1000](10)(100)(50)(100)[1000]';
$h{$_} .= $_ for $s =~ /\(\d+\)|\[\d+\]/g;
use List::Util 'sum';
$v{$h{$_}} = sum($h{$_} =~ /\d+/g) for keys %h;
print "$_\n" for sort{$v{$b} <=> $v{$a}} keys %v;
実行結果
~ $ perl 22_474_value.pl
[10000]
[5000]
[1000][1000][1000][1000]
(500)
(100)(100)(100)
(50)
(10)(10)
(5)
(1)
4849
2025/01/21(火) 02:09:25.80ID:Kvjf8jsk485デフォルトの名無しさん
2025/01/22(水) 21:35:12.82ID:JtEnwxKE お題
文字列と長さを入力として受け取り
デカルト積のリストを出力してください
入力:ABC 1
出力:[A, B, C]
入力:ABC 2
出力:[AA, AB, AC, BA, BB, BC, CA, CB, CC]
入力:ABC 3
出力:[AAA, AAB, AAC, ABA, ABB, ABC, ACA, ACB, ACC, BAA, BAB, BAC, BBA, BBB, BBC, BCA, BCB, BCC, CAA, CAB, CAC, CBA, CBB, CBC, CCA, CCB, CCC]
文字列と長さを入力として受け取り
デカルト積のリストを出力してください
入力:ABC 1
出力:[A, B, C]
入力:ABC 2
出力:[AA, AB, AC, BA, BB, BC, CA, CB, CC]
入力:ABC 3
出力:[AAA, AAB, AAC, ABA, ABB, ABC, ACA, ACB, ACC, BAA, BAB, BAC, BBA, BBB, BBC, BCA, BCB, BCC, CAA, CAB, CAC, CBA, CBB, CBC, CCA, CCB, CCC]
486デフォルトの名無しさん
2025/01/22(水) 22:43:43.59ID:EHGf/TPZ >>485
Rust
fn odai(文字列: &str, 長さ: usize) -> Vec<String> {
use itertools::Itertools;
(0..長さ)
.map(|_| 文字列.chars())
.multi_cartesian_product()
.map(String::from_iter)
.collect()
}
fn main() {
assert_eq!(odai("ABC", 1), ["A", "B", "C"]);
assert_eq!(odai("ABC", 2), ["AA", "AB", "AC", "BA", "BB", "BC", "CA", "CB", "CC"]);
assert_eq!(odai("ABC", 3), ["AAA", "AAB", "AAC", "ABA", "ABB", "ABC", "ACA", "ACB", "ACC", "BAA", "BAB", "BAC", "BBA", "BBB", "BBC", "BCA", "BCB", "BCC", "CAA", "CAB", "CAC", "CBA", "CBB", "CBC", "CCA", "CCB", "CCC"]);
}
Rust
fn odai(文字列: &str, 長さ: usize) -> Vec<String> {
use itertools::Itertools;
(0..長さ)
.map(|_| 文字列.chars())
.multi_cartesian_product()
.map(String::from_iter)
.collect()
}
fn main() {
assert_eq!(odai("ABC", 1), ["A", "B", "C"]);
assert_eq!(odai("ABC", 2), ["AA", "AB", "AC", "BA", "BB", "BC", "CA", "CB", "CC"]);
assert_eq!(odai("ABC", 3), ["AAA", "AAB", "AAC", "ABA", "ABB", "ABC", "ACA", "ACB", "ACC", "BAA", "BAB", "BAC", "BBA", "BBB", "BBC", "BCA", "BCB", "BCC", "CAA", "CAB", "CAC", "CBA", "CBB", "CBC", "CCA", "CCB", "CCC"]);
}
487デフォルトの名無しさん
2025/01/22(水) 23:18:53.24ID:dYX3B7ea488デフォルトの名無しさん
2025/01/22(水) 23:57:13.34ID:EHGf/TPZ >>485
Rust 今回は積ライブラリを使わない自力版
fn odai(文字列: &str, 長さ: usize) -> Vec<String> {
let chars = 文字列.chars().collect::<Vec<_>>();
let mut state = vec![0; 長さ];
let mut output = Vec::new();
'Loop: loop {
let s = state.iter().map(|i| chars[*i]).collect();
output.push(s);
for index in state.iter_mut().rev() {
*index += 1;
if *index == chars.len() {
*index = 0;
continue;
}
continue 'Loop;
}
return output;
}
}
検証用main()は>>486と同じ
Rust 今回は積ライブラリを使わない自力版
fn odai(文字列: &str, 長さ: usize) -> Vec<String> {
let chars = 文字列.chars().collect::<Vec<_>>();
let mut state = vec![0; 長さ];
let mut output = Vec::new();
'Loop: loop {
let s = state.iter().map(|i| chars[*i]).collect();
output.push(s);
for index in state.iter_mut().rev() {
*index += 1;
if *index == chars.len() {
*index = 0;
continue;
}
continue 'Loop;
}
return output;
}
}
検証用main()は>>486と同じ
489デフォルトの名無しさん
2025/01/23(木) 18:33:06.01ID:hcg9tgUx >>485
JavaScript
const prod = function* (str, len, buf = [])
{
if (len > 0)
{
for (let i = 0; i < str.length; i++)
{
buf.push(str[i]);
yield* prod(str, len - 1, buf);
buf.pop();
}
}
else
{
yield buf.join("");
}
};
for (let n = 1; n < 4; n++)
{
console.log([...prod("ABC", n)]);
}
JavaScript
const prod = function* (str, len, buf = [])
{
if (len > 0)
{
for (let i = 0; i < str.length; i++)
{
buf.push(str[i]);
yield* prod(str, len - 1, buf);
buf.pop();
}
}
else
{
yield buf.join("");
}
};
for (let n = 1; n < 4; n++)
{
console.log([...prod("ABC", n)]);
}
490デフォルトの名無しさん
2025/01/23(木) 20:05:23.84ID:naue5Hlh4919
2025/01/24(金) 01:44:22.46ID:p08ruAfw >>485 Perl5
for $n (1..3) {
@cp = @s = qw(A B C);
while(--$n) { @cp = map{ $p = $_; map{ "$p$_" } @s } @cp }
print "@cp\n";
}
※見易くするためインデントは全角スペースに置換してあります
実行結果
~ $ perl 22_485_CartesianProd.pl
A B C
AA AB AC BA BB BC CA CB CC
AAA AAB AAC ABA ABB ABC ACA ACB ACC BAA BAB BAC BBA BBB BBC BCA BCB BCC CAA CAB CAC CBA CBB CBC CCA CCB CCC
for $n (1..3) {
@cp = @s = qw(A B C);
while(--$n) { @cp = map{ $p = $_; map{ "$p$_" } @s } @cp }
print "@cp\n";
}
※見易くするためインデントは全角スペースに置換してあります
実行結果
~ $ perl 22_485_CartesianProd.pl
A B C
AA AB AC BA BB BC CA CB CC
AAA AAB AAC ABA ABB ABC ACA ACB ACC BAA BAB BAC BBA BBB BBC BCA BCB BCC CAA CAB CAC CBA CBB CBC CCA CCB CCC
4929
2025/01/24(金) 17:38:14.24ID:cg1ZmS3G >>464 Perl5
for (<DATA>) {
chomp;
print "$_ → ", (/^(A((AB)?|(?1))B)+$/g ? 'true' : 'false'), "\n";
}
__DATA__
A
B
AB
ABB
AAB
AABB
ABAABBAAABBB
ABC
AABABB
※見易くするためにインデントを全角スペースに置換してあります
実行結果
~ $ perl 22_464_AB_rec_rex.pl
→ false
A → false
B → false
AB → true
ABB → false
AAB → false
AABB → true
ABAABBAAABBB → true
ABC → false
AABABB → false
for (<DATA>) {
chomp;
print "$_ → ", (/^(A((AB)?|(?1))B)+$/g ? 'true' : 'false'), "\n";
}
__DATA__
A
B
AB
ABB
AAB
AABB
ABAABBAAABBB
ABC
AABABB
※見易くするためにインデントを全角スペースに置換してあります
実行結果
~ $ perl 22_464_AB_rec_rex.pl
→ false
A → false
B → false
AB → true
ABB → false
AAB → false
AABB → true
ABAABBAAABBB → true
ABC → false
AABABB → false
493デフォルトの名無しさん
2025/01/24(金) 20:04:46.59ID:kDOvSp0D495デフォルトの名無しさん
2025/01/25(土) 03:04:24.02ID:Z97MpHAu どんまい
496デフォルトの名無しさん
2025/01/25(土) 21:23:47.57ID:KM9w0vp0497デフォルトの名無しさん
2025/01/26(日) 14:07:38.91ID:nBBaggrk498493
2025/01/26(日) 15:22:46.05ID:dl7YvN1C499デフォルトの名無しさん
2025/01/27(月) 00:00:51.14ID:/Jqezixy500デフォルトの名無しさん
2025/01/27(月) 09:16:22.69ID:rqFJtGlJ お題
入力された文字列から重複する文字を抽出してください
T →
CG →
ATA → A
CGGA → G
ATGAT → AT
GTTGCA → GT
CCCCGGG → CG
ACTGCGAG → ACG
ATCAGAATA → AT
TGCCATGACA → TGCA
入力された文字列から重複する文字を抽出してください
T →
CG →
ATA → A
CGGA → G
ATGAT → AT
GTTGCA → GT
CCCCGGG → CG
ACTGCGAG → ACG
ATCAGAATA → AT
TGCCATGACA → TGCA
5019
2025/01/27(月) 17:15:59.64ID:cwZgX9Gy Perl5
for (qw{T CG ATA CGGA ATGAT GTTGCA CCCCGGG ACTGCGAG ATCAGAATA TGCCATGACA}) {
%h = (); $h{$_}++ for split '';
print "$_ → ", (grep{1 < $h{$_}} keys %h), "\n";
}
※見易くするためインデントを全角スペースに置換してあります
実行結果
~ $ perl 22_500_dupe_char.pl
T →
CG →
ATA → A
CGGA → G
ATGAT → TA
GTTGCA → GT
CCCCGGG → CG
ACTGCGAG → GAC
ATCAGAATA → TA
TGCCATGACA → TGAC
for (qw{T CG ATA CGGA ATGAT GTTGCA CCCCGGG ACTGCGAG ATCAGAATA TGCCATGACA}) {
%h = (); $h{$_}++ for split '';
print "$_ → ", (grep{1 < $h{$_}} keys %h), "\n";
}
※見易くするためインデントを全角スペースに置換してあります
実行結果
~ $ perl 22_500_dupe_char.pl
T →
CG →
ATA → A
CGGA → G
ATGAT → TA
GTTGCA → GT
CCCCGGG → CG
ACTGCGAG → GAC
ATCAGAATA → TA
TGCCATGACA → TGAC
5029
2025/01/27(月) 21:20:12.94ID:cwZgX9Gy5039
2025/01/27(月) 21:22:36.75ID:cwZgX9Gy CopilotのURLをコピペしても他の人に内容を見せることはできなかったワ…orz
504デフォルトの名無しさん
2025/01/27(月) 21:24:28.42ID:LHxZVLOG >>500 octave
https://ideone.com/eLcVPC
function s = f(s)
[~, ia] = unique(s);
s(ia) = [];
if 1 < length(s)
[~, ia] = unique(s, 'first');
s = s(sort(ia));
end
end
>>500 ruby
https://try.ruby-lang.org/playground/#code=f+%3D+-%3Es+%7Bs.chars.tally.select+%7B1+%3C+_2%7D.keys.join%7D%0Ass+%3D+%3C%3CEOS.lines(chomp%3A+true)%0AT%0ACG%0AATA%0ACGGA%0AATGAT%0AGTTGCA%0ACCCCGGG%0AACTGCGAG%0AATCAGAATA%0ATGCCATGACA%0AEOS%0Aputs+ss.map+%7B%7Cs%7C+%22%23%7Bs%7D+-%3E+%23%7Bf.(s)%7D%22%7D&engine=cruby-3.3.0
https://ideone.com/9E5Z9a
f = ->s {s.chars.tally.select {1 < _2}.keys.join}
https://ideone.com/eLcVPC
function s = f(s)
[~, ia] = unique(s);
s(ia) = [];
if 1 < length(s)
[~, ia] = unique(s, 'first');
s = s(sort(ia));
end
end
>>500 ruby
https://try.ruby-lang.org/playground/#code=f+%3D+-%3Es+%7Bs.chars.tally.select+%7B1+%3C+_2%7D.keys.join%7D%0Ass+%3D+%3C%3CEOS.lines(chomp%3A+true)%0AT%0ACG%0AATA%0ACGGA%0AATGAT%0AGTTGCA%0ACCCCGGG%0AACTGCGAG%0AATCAGAATA%0ATGCCATGACA%0AEOS%0Aputs+ss.map+%7B%7Cs%7C+%22%23%7Bs%7D+-%3E+%23%7Bf.(s)%7D%22%7D&engine=cruby-3.3.0
https://ideone.com/9E5Z9a
f = ->s {s.chars.tally.select {1 < _2}.keys.join}
505デフォルトの名無しさん
2025/01/27(月) 21:30:57.80ID:l9HsQRRu506デフォルトの名無しさん
2025/01/28(火) 21:18:03.62ID:oNqYbqge507デフォルトの名無しさん
2025/01/29(水) 01:00:49.19ID:4mvV5Tkg508デフォルトの名無しさん
2025/01/29(水) 01:49:29.44ID:PQfpjql4 >>500
REM 重複チェック.bat
ruby -x "%~f0"
exit
#~
#!ruby
while 1
print "> "
a=$stdin.gets.chomp.split("")
exit if a==[]
puts a.select{|e| a.count(e)>1}.uniq.join
end
REM 重複チェック.bat
ruby -x "%~f0"
exit
#~
#!ruby
while 1
print "> "
a=$stdin.gets.chomp.split("")
exit if a==[]
puts a.select{|e| a.count(e)>1}.uniq.join
end
509デフォルトの名無しさん
2025/01/29(水) 21:56:05.24ID:GDFS0NvX510デフォルトの名無しさん
2025/01/30(木) 21:27:24.39ID:te1+SH0T お題
ソース文字列と検索文字列が入力されます
検索文字列の文字をすべて含むソース文字列の部分文字列のうち
一番短い部分文字列を出力してください
DHBICEJAFG EIC → ICE
FDGJHCBIEA EIC → CBIE
FBHDCIJGEA EIC → CIJGE
JDIBGHCEAF EIC → IBGHCE
JBCIAGDHEF EIC → CIAGDHE
EJFBCAGIHD EIC → EJFBCAGI
IADCGJFBEH EIC → IADCGJFBE
IDFHBJGAEC EIC → IDFHBJGAEC
ソース文字列と検索文字列が入力されます
検索文字列の文字をすべて含むソース文字列の部分文字列のうち
一番短い部分文字列を出力してください
DHBICEJAFG EIC → ICE
FDGJHCBIEA EIC → CBIE
FBHDCIJGEA EIC → CIJGE
JDIBGHCEAF EIC → IBGHCE
JBCIAGDHEF EIC → CIAGDHE
EJFBCAGIHD EIC → EJFBCAGI
IADCGJFBEH EIC → IADCGJFBE
IDFHBJGAEC EIC → IDFHBJGAEC
511506
2025/01/30(木) 21:43:26.41ID:ID2xuR+0512デフォルトの名無しさん
2025/01/30(木) 22:47:12.58ID:3iB+73MI 高速文字列解析の世界に似た問題のアルゴリズム(ウェーブレット木)が沢山ありました
513デフォルトの名無しさん
2025/01/31(金) 00:36:51.89ID:MBodgIXJ514デフォルトの名無しさん
2025/01/31(金) 13:46:22.55ID:+tPQNmsr このスレでいいのかわからんのだけど
Rust勉強中なんだがメモリ安全性の恩恵を受けやすいなんかしらかのプログラムを書こうと思ってるんだがなにかいいお題はあるか?
言語処理系は大体作ってるのでそれ以外で頼む
Rust勉強中なんだがメモリ安全性の恩恵を受けやすいなんかしらかのプログラムを書こうと思ってるんだがなにかいいお題はあるか?
言語処理系は大体作ってるのでそれ以外で頼む
515デフォルトの名無しさん
2025/01/31(金) 15:33:43.41ID:b4vq2KMj う~んこの嫌われムーブはあのおじさんか
このスレでは自重して欲しいな
このスレでは自重して欲しいな
516デフォルトの名無しさん
2025/01/31(金) 16:14:43.64ID:fZW/Grtl >>514 へのお題
次の操作ができる循環リンクリストを作成してください
・空のリストへの挿入
・冒頭の挿入
・最後に挿入
・指定された位置への挿入
・最初のノードを削除する
・最後のノードを削除する
・任意の位置からノードを削除する
次の操作ができる循環リンクリストを作成してください
・空のリストへの挿入
・冒頭の挿入
・最後に挿入
・指定された位置への挿入
・最初のノードを削除する
・最後のノードを削除する
・任意の位置からノードを削除する
517デフォルトの名無しさん
2025/01/31(金) 21:55:55.86ID:mLWOFznj >>514
Rustはメモリのデータ競合もデータ参照競合も全てコンパイルエラーにしてくれるから間違えようがないね
他の普通の言語だと実行して問題発生に気付いて調査して頑張ってようやく競合が原因だと判明して間違えていたことがわかるから開発効率の悪さとして差が現れるけど
Rustは実行前にその種のミスのデバッグまで全て終えてしまう感じ
Rustはメモリのデータ競合もデータ参照競合も全てコンパイルエラーにしてくれるから間違えようがないね
他の普通の言語だと実行して問題発生に気付いて調査して頑張ってようやく競合が原因だと判明して間違えていたことがわかるから開発効率の悪さとして差が現れるけど
Rustは実行前にその種のミスのデバッグまで全て終えてしまう感じ
518デフォルトの名無しさん
2025/01/31(金) 22:10:00.47ID:4ClqIqkw 普通は問題発生前に気がつく
519デフォルトの名無しさん
2025/01/31(金) 22:17:10.46ID:bHXxdIdo520デフォルトの名無しさん
2025/01/31(金) 22:38:00.61ID:3jAIz2ps >>518
グローバル変数を排他制御せずに使ってしまっていたりするミスなどよく見かけるような
一般的にも巨大なコードになったり複数人で共通認識なかったりで見逃しミスは必ず出てくる
そしてタイミング次第によって稀にバグが起こるパターンとか負荷が高くなって起きてバグ発覚とか
グローバル変数を排他制御せずに使ってしまっていたりするミスなどよく見かけるような
一般的にも巨大なコードになったり複数人で共通認識なかったりで見逃しミスは必ず出てくる
そしてタイミング次第によって稀にバグが起こるパターンとか負荷が高くなって起きてバグ発覚とか
レスを投稿する
ニュース
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★4 [ぐれ★]
- 【音楽】Perfume・あ~ちゃんの結婚相手「一般男性」は吉田カバンの社長・吉田幸裕氏(41) 高身長で山本耕史似 [Ailuropoda melanoleuca★]
- 【大分】佐賀関で大規模火災、170棟以上が延焼中 70代男性1人と連絡取れず [ぐれ★]
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 【インバウンド】中国人観光客の日本での消費額は年間約2兆円超…中国政府は公務員の出張取り消し [1ゲットロボ★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- 中国に武力併合されるのを防ぐ方法、ロシアに併合されるしかない
- アンケート調査で「高市発言は問題なし」 93.5%wwwwwwwwwwwwwwwwwwwwwwwww [279254606]
- 自閉症が「んなっしょい」と連呼するお🏡
- セブンのななチキ美味い😋
- 中国人「じゃあ漢字使うなよ」日本人「あわわ…」
- 自民党議員「高市は先人が築き上げた日中関係を壊した。外務省が謝罪に言ってるが自分で責任を取れ」 [834922174]
