プログラミングのお題スレです。
【出題と回答例】
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/
宿題は宿題スレがあるのでそちらへ。
※前スレ
プログラミングのお題スレ Part19
https://mevius.5ch.net/test/read.cgi/tech/1606662245/
探検
プログラミングのお題スレ Part20
レス数が1000を超えています。これ以上書き込みはできません。
2021/06/19(土) 00:02:57.84ID:MQWrKSb7
969デフォルトの名無しさん
2022/11/10(木) 14:11:20.86ID:oQpocXYl >>960
Kotlin
https://paiza.io/projects/Qfx9ljGCsICVDui8fcn-0A
Unicodeで作った。サロゲートペアの文字もちゃんと扱える。
判別には Java の Character クラスのメソッドを利用している。
これだといわゆる全角の数字は数字扱いになるが漢数字は数字と分類してくれない。
ローマ数字はアルファベット大文字扱い。
日本語の「あ」とかもアルファベットとして扱われるが大文字でも小文字でもないのでそれ以外の文字に追加されるようにした。
コントロールコードは \uXXXX 形式になるようにした。
Kotlin
https://paiza.io/projects/Qfx9ljGCsICVDui8fcn-0A
Unicodeで作った。サロゲートペアの文字もちゃんと扱える。
判別には Java の Character クラスのメソッドを利用している。
これだといわゆる全角の数字は数字扱いになるが漢数字は数字と分類してくれない。
ローマ数字はアルファベット大文字扱い。
日本語の「あ」とかもアルファベットとして扱われるが大文字でも小文字でもないのでそれ以外の文字に追加されるようにした。
コントロールコードは \uXXXX 形式になるようにした。
970デフォルトの名無しさん
2022/11/10(木) 18:57:30.40ID:3zaWz6R+ >>960
PowerShell
function StrClassify($s)
{
"\P{Lu}", "\P{Ll}", "\P{N}", "[\p{Lu}\p{Ll}\p{N}]" |% {$s -creplace $_}
}
StrClassify "Κωνσταντινούπολιςは1453年にİstanbulと改称された。`n"
StrClassify "塩化銅(Ⅱ)は水中で CuCl₂ ⇄ Cu²⁺ + 2Cl⁻ のように電離する。"
[実行結果]
Κİ
ωνσταντινούπολιςstanbul
1453
は年にと改称された。
CCCC
ulul
Ⅱ₂²2
塩化銅()は水中で ⇄ ⁺ + ⁻ のように電離する。
PowerShell
function StrClassify($s)
{
"\P{Lu}", "\P{Ll}", "\P{N}", "[\p{Lu}\p{Ll}\p{N}]" |% {$s -creplace $_}
}
StrClassify "Κωνσταντινούπολιςは1453年にİstanbulと改称された。`n"
StrClassify "塩化銅(Ⅱ)は水中で CuCl₂ ⇄ Cu²⁺ + 2Cl⁻ のように電離する。"
[実行結果]
Κİ
ωνσταντινούπολιςstanbul
1453
は年にと改称された。
CCCC
ulul
Ⅱ₂²2
塩化銅()は水中で ⇄ ⁺ + ⁻ のように電離する。
971デフォルトの名無しさん
2022/11/10(木) 20:35:16.34ID:V5vZiHvW >>944をやってみたらPythonで300くらいでオーバーフローになった
分子と分母をべつべつに計算してp/qだったとすると
int(10^n * p / q ) % 10 が求める答えのはずだが、この計算ができなかった
分子と分母をべつべつに計算してp/qだったとすると
int(10^n * p / q ) % 10 が求める答えのはずだが、この計算ができなかった
972デフォルトの名無しさん
2022/11/10(木) 20:44:38.28ID:V5vZiHvW ここで問題変更でp/qの小数点n桁目を求める問題にすればいいか
オーバーフローしないように×10ずつして整数部分は無視していけば整数演算の範囲内にできるか
忘れたがユークリッド互除法みたいな?
オーバーフローしないように×10ずつして整数部分は無視していけば整数演算の範囲内にできるか
忘れたがユークリッド互除法みたいな?
973デフォルトの名無しさん
2022/11/10(木) 20:50:26.16ID:m98zu82a input.replace(/[^A-Z]/g,"")
+ input.replace(/[^a-z]/g,"")
+ input.replace(/[^0-9]/g,"")
+ input.replace(/[A-Za-z0-9]/g,"")
+ input.replace(/[^a-z]/g,"")
+ input.replace(/[^0-9]/g,"")
+ input.replace(/[A-Za-z0-9]/g,"")
974デフォルトの名無しさん
2022/11/10(木) 20:51:12.57ID:m98zu82a [/[^A-Z]/g, /[^a-z]/g, /[^0-9]/g, /[A-Za-z0-9]/g]
.map(r => input.replace(r,"")).join("")
.map(r => input.replace(r,"")).join("")
975971
2022/11/10(木) 21:10:50.60ID:V5vZiHvW976デフォルトの名無しさん
2022/11/10(木) 21:27:26.89ID:p27a51fr >>944
Haskell
https://ideone.com/2tUIFo
import Data.Ratio
hnn n = flip mod 10 $ truncate $ (* ( 10^n)) $ sum $ map recip [ 1%1..n%1 ]
main = print $ hnn 300
Haskell
https://ideone.com/2tUIFo
import Data.Ratio
hnn n = flip mod 10 $ truncate $ (* ( 10^n)) $ sum $ map recip [ 1%1..n%1 ]
main = print $ hnn 300
977デフォルトの名無しさん
2022/11/10(木) 21:45:52.91ID:KPTSzoDK お題 小数点第n位を求めるプログラムを作成せよ
978デフォルトの名無しさん
2022/11/10(木) 21:58:11.94ID:JknzoKCK >>977
何の?
何の?
979デフォルトの名無しさん
2022/11/11(金) 12:27:18.79ID:eQP0gwqb ルート4の
980デフォルトの名無しさん
2022/11/11(金) 13:33:07.98ID:XogJxnoW そんなむず過ぎるお題は過疎るのだ却下
981デフォルトの名無しさん
2022/11/11(金) 18:36:58.77ID:Jm4DMnci >>978
入力された実数
入力された実数
982デフォルトの名無しさん
2022/11/11(金) 20:10:51.65ID:+Uq9lyYZ (x*10**n)%10
983デフォルトの名無しさん
2022/11/12(土) 01:53:40.01ID:Y/i2pfZ3 お題
配列データと、同じ長さの確率の配列(合計値1)が与えられた時に、対応する確率で配列からデータを出力せよ
例
aa,bb,cc
0.4,0.5,0.1
→aa 40%, bb 50%, cc 10%で出力
配列データと、同じ長さの確率の配列(合計値1)が与えられた時に、対応する確率で配列からデータを出力せよ
例
aa,bb,cc
0.4,0.5,0.1
→aa 40%, bb 50%, cc 10%で出力
984デフォルトの名無しさん
2022/11/12(土) 08:50:36.22ID:yCEPOpQl >>983 Ruby
a = %w[aa bb cc]
p = [0.4, 0.5, 0.1]
f = -> (a, p) { r = rand; a[(0..a.size-2).find{ r < p[0.._1].sum } || a.size - 1] }
10.times{ print f[a, p] }
# => aabbccbbaaaaaabbbbbb
a = %w[aa bb cc]
p = [0.4, 0.5, 0.1]
f = -> (a, p) { r = rand; a[(0..a.size-2).find{ r < p[0.._1].sum } || a.size - 1] }
10.times{ print f[a, p] }
# => aabbccbbaaaaaabbbbbb
985デフォルトの名無しさん
2022/11/12(土) 10:10:20.03ID:g2vYgSbJ >>983
Haskell
https://ideone.com/UErkR7
import System.Random
import Data.List
randomDbls :: StdGen -> [ Double ]
randomDbls= randomRs (0,1)
chooseItem is ws r = let
folder a b = a : map ( + a ) b
selecter r ( i, ( f, t ) ) = f <= r && r < t
ts = foldr folder [ ] ws
fs = 0 : ts
ifts = zip is $ zip fs ts
in fst $ head $ filter ( selecter r ) ifts
main = do
rds <- ( return . randomDbls ) =<< getStdGen
print $ map (chooseItem ['A'..'C' ] [0.4,0.5,0.1] ) $ take 100 rds
Haskell
https://ideone.com/UErkR7
import System.Random
import Data.List
randomDbls :: StdGen -> [ Double ]
randomDbls= randomRs (0,1)
chooseItem is ws r = let
folder a b = a : map ( + a ) b
selecter r ( i, ( f, t ) ) = f <= r && r < t
ts = foldr folder [ ] ws
fs = 0 : ts
ifts = zip is $ zip fs ts
in fst $ head $ filter ( selecter r ) ifts
main = do
rds <- ( return . randomDbls ) =<< getStdGen
print $ map (chooseItem ['A'..'C' ] [0.4,0.5,0.1] ) $ take 100 rds
986デフォルトの名無しさん
2022/11/12(土) 10:19:35.32ID:uOtU06vW987デフォルトの名無しさん
2022/11/12(土) 14:34:06.57ID:Q9bJaddO >>983 ocaml
https://ideone.com/aDR0Do
let (<<) f g x = f (g x)
let cumsum =
List.rev << fst << List.fold_left (fun (a, s) f -> s +. f :: a, s +. f) ([], 0.)
let f xs =
let r = Random.float 1. in
fst << List.find ((<) r << snd) << List.combine xs << cumsum
https://ideone.com/aDR0Do
let (<<) f g x = f (g x)
let cumsum =
List.rev << fst << List.fold_left (fun (a, s) f -> s +. f :: a, s +. f) ([], 0.)
let f xs =
let r = Random.float 1. in
fst << List.find ((<) r << snd) << List.combine xs << cumsum
988デフォルトの名無しさん
2022/11/12(土) 16:47:04.36ID:We3Ba5Li >>983
コレでよかった
Haskell
https://ideone.com/WtPXzw
import System.Random
randomDbls :: StdGen -> [ Double ]
randomDbls= randomRs (0,1)
chooseItem (i:is) (w:ws) r | r < w = i
chooseItem (i:is) (w:ws) r = chooseItem is ws ( r - w )
main = do
rds <- ( return . randomDbls ) =<< getStdGen
print $ map (chooseItem ['A'..'C' ] [0.4,0.5,0.1] ) $ take 100 rds
コレでよかった
Haskell
https://ideone.com/WtPXzw
import System.Random
randomDbls :: StdGen -> [ Double ]
randomDbls= randomRs (0,1)
chooseItem (i:is) (w:ws) r | r < w = i
chooseItem (i:is) (w:ws) r = chooseItem is ws ( r - w )
main = do
rds <- ( return . randomDbls ) =<< getStdGen
print $ map (chooseItem ['A'..'C' ] [0.4,0.5,0.1] ) $ take 100 rds
989デフォルトの名無しさん
2022/11/12(土) 17:19:40.29ID:MirHjvCf990デフォルトの名無しさん
2022/11/12(土) 19:13:20.80ID:MirHjvCf https://ideone.com/8utmEg
元からあったコードをちょっといじったんだけど変換ミスがあった
元からあったコードをちょっといじったんだけど変換ミスがあった
991デフォルトの名無しさん
2022/11/13(日) 18:45:40.25ID:zjrUNZaB992デフォルトの名無しさん
2022/11/13(日) 19:01:26.14ID:ZCYlhUwL993デフォルトの名無しさん
2022/11/15(火) 08:06:01.58ID:XL64sJsG うめ
994デフォルトの名無しさん
2022/11/15(火) 09:22:13.74ID:x0rg5fHd お題:1辺がn文字の正四角形を表示せよ
1 <= n <= 8 とする
1 <= n <= 8 とする
995デフォルトの名無しさん
2022/11/15(火) 10:16:55.01ID:V1sKjJZc haskell
https://ideone.com/4Kd3el
sqStr n = ""
++ "\x250f" ++ r "\x2501" ++ "\x2513" ++ "\n"
++ r ( "\x2503" ++ r "\x2001" ++ "\x2503" ++ " \n" )
++ "\x2517" ++ r "\x2501" ++ "\x251b" ++ "\n"
where r = concat . replicate ( n-2 )
main = putStr $ sqStr 10
https://ideone.com/4Kd3el
sqStr n = ""
++ "\x250f" ++ r "\x2501" ++ "\x2513" ++ "\n"
++ r ( "\x2503" ++ r "\x2001" ++ "\x2503" ++ " \n" )
++ "\x2517" ++ r "\x2501" ++ "\x251b" ++ "\n"
where r = concat . replicate ( n-2 )
main = putStr $ sqStr 10
996デフォルトの名無しさん
2022/11/15(火) 20:16:12.10ID:r20LvnA2 >>994 octave
https://ideone.com/k9cAWw
function s = f(n)
s = repmat('#', n);
s(2:end-1, 2:end-1) = ' ';
end
https://ideone.com/k9cAWw
function s = f(n)
s = repmat('#', n);
s(2:end-1, 2:end-1) = ' ';
end
997デフォルトの名無しさん
2022/11/17(木) 21:39:57.15ID:BbSHYj/y うめ
998デフォルトの名無しさん
2022/11/17(木) 21:40:03.49ID:BbSHYj/y うめ
999デフォルトの名無しさん
2022/11/17(木) 21:40:08.22ID:BbSHYj/y うめ
1000デフォルトの名無しさん
2022/11/17(木) 23:04:00.66ID:W9+RkUIs 竹
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 516日 23時間 1分 3秒
新しいスレッドを立ててください。
life time: 516日 23時間 1分 3秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 国会が「238秒停止」「3連続音声オフ」 代打・小泉大臣にも大音量ヤジ 起立する議員続出…高市総理の発言めぐり紛糾 [♪♪♪★]
- 【東京】赤坂サウナ火事2人死亡 サウナ室のドアノブ外れ閉じ込められた可能性 ★4 [nita★]
- 「こども2万円給付」は“ずるい”?「子持ちだけ優遇されてる」「来年から独身税もあるのに」…子育て世帯への支援は“不公平”なのか [♪♪♪★]
- 「PC買うなら急げ」は本当だった。マウスが一部販売停止&1月値上げを発表 [♪♪♪★]
- 【速報】 ロシア潜水艦が攻撃されて巨大水柱 [お断り★]
- 【赤坂サウナ店火事】死亡男女は川崎市在住の夫婦 ドアノブ内側も外側も外れ、閉じ込められたか [ぐれ★]
- 東京都「お願いパンダレンタルさせて!!!😭」中国「🥴」 [817260143]
- 【悲報】ワイ、一蘭で外人に怒鳴られるwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww [455031798]
- 野党「台湾を国と認めてるの?」高市「◯☓※▲😤」野党「いや答えて」高市「◯☓~」野党「速記止めろぉ!」 [359965264]
- 俺「抵抗アレイとって」新人「どれ?」俺「抵抗アレイ!」新人「だからどれだよ」
- 3時のおやつ🧁はふなキャンディー🍬🏡
- 【悲報】米倉涼子の薬物騒動、なんか完全に忘れられるWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW
