プログラミングのお題スレ Part22 (858レス)
上下前次1-新
抽出解除 レス栞
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
12: デフォルトの名無しさん [] 2023/08/07(月) 19:28:19.42 ID:dolrRGoi(2/2) AAS
>>11言われてみればRustに見えるな。
Rustは趣味で学習始めたばかりでよく分からなかった。
55(1): 蟻人間 ◆T6xkBnTXz7B0 [sage] 2023/08/20(日) 21:28:53.42 ID:KEiNPJgB(1) AAS
お題: お風呂の準備。
容積225Lの浴槽に適温39度のお湯200Lを用意したい。
次の2つのスイッチのON/OFFを切り替えてお湯を用意するプログラムを作れ。
スイッチ1: これをONにすると浴槽に水温20度の水を分速10Lで投入する。
スイッチ2: これをONにすると浴槽の水を800ワットの電熱線で加熱する。
ただし、浴槽に容積の1/2以上の水またはお湯が入っていないときは、空焚き防止のため、加熱しないものとする。
放熱は考慮しなくてもよい。
出力例)
時刻??: スイッチ1をONにしました。
時刻??: スイッチ2をONにしました。
時刻??: お風呂ができました。
時刻??: スイッチ1をOFFにしました。
時刻??: スイッチ2をOFFにしました。
58(1): デフォルトの名無しさん [sage] 2023/08/21(月) 05:17:48.42 ID:9NybdpKD(1) AAS
>>56200年分のデータを配列を貯め込む>>51の方法よりも
そのようなメモリ消費を必要としないイテレータを作る案は好ましい方法ですね
しかし-100や+100は今回たまたまのマジックナンバーに過ぎないですし
例えばお題が「指定した年とその後(またはそれ以前に)同じカレンダーになる年を100個求めよ」もありえます
したがって作成しておくべき汎用イテレータは指定した年から順方向に返すイテレータと逆方向に返すイテレータでしょう
それがあれば今回のお題を含めた様々なバリエーションのお題に対応できると思います
71(3): デフォルトの名無しさん [sage] 2023/08/26(土) 20:03:48.42 ID:LJcWLtrE(1) AAS
文字列Sの中に含まれる回文をすべて列挙ってどうやったらいいですかね(*_*)
aとかbみたいな一文字でも回文とみなしますです
文字列Sは1文字以上100文字以下で、半角英字であることがわかってます
とんでもない計算量になる気がするのですが、鮮やかなやりかたってないものかと…トホ(ヽ´ω`)
112: デフォルトの名無しさん [sage] 2023/09/30(土) 18:00:29.42 ID:oqu6hf3+(1) AAS
>>111111(5): デフォルトの名無しさん [] 2023/09/30(土) 17:32:44.04 ID:xxjzuZuq(1) AAS
お題
文字列が入力されます
赤と緑を入れ替えて
黒と白を入れ替えて
黄と青を入れ替えてください
例
入力: 緑のカバンに500万入れて白の紙で黄色のカバン言うて書きながら赤のカバン言いながら置いてくれたら俺黒のカバン言いながら取りに行くわ
出力: 赤のカバンに500万入れて黒の紙で青色のカバン言うて書きながら緑のカバン言いながら置いてくれたら俺白のカバン言いながら取りに行くわ
node
const swap = (text, [w1, w2]) => text.split(w1).map(v => v.replaceAll(w2, w1)).join(w2)
const swapAll = (text, rules) => rules.reduce(swap, text)
const text = '緑のカバンに500万入れて白の紙で黄色のカバン言うて書きながら赤のカバン言いながら置いてくれたら俺黒のカバン言いながら取りに行くわ'
const rules = [['赤', '緑'], ['黒', '白'], ['黄', '青']]
const replaced = swapAll(text, rules)
// console.log(replaced)
console.log(replaced === '赤のカバンに500万入れて黒の紙で青色のカバン言うて書きながら緑のカバン言いながら置いてくれたら俺白のカバン言いながら取りに行くわ')
// true
291(1): 288 [sage] 2024/02/27(火) 21:45:30.42 ID:nu8aoj+0(1) AAS
>>282282(16): ◆QZaw55cn4c [sage] 2024/02/24(土) 14:25:41.40 ID:NZEL8Kud(1) AAS
異なる自然数 a, b (a > b) における a^3 - b^3 を「a, b の三乗差」と呼ぶことにする。
異なる5通りの組(a, b) (c, d) ... (j, k) について三乗差がすべて相等しいとき
その組(a, b)...(j, k) および三乗差自体を求めよ
異なる6通りの組で三乗差が相等しい場合があるかも検討せよ
c
外部リンク:ideone.com
・288の移植
307: デフォルトの名無しさん [] 2024/03/10(日) 11:20:30.42 ID:Doj9A/yB(1) AAS
>>306306(1): デフォルトの名無しさん [sage] 2024/03/10(日) 01:20:18.65 ID:8NU5B5F+(1) AAS
>>304
面倒なので全て460円を引くと
A=0円 B=120円 C=140円
10個で760円という問題
面倒なのでさらに20で割ると
A=0円 B=6 C=7円
10個で38円という問題
つまり唯一奇数のCは偶数個が確定
Cが6個以上だと42円以上でオーバーしてNG
Cが4個だと28円で残り10円をA,Bで作れないからNG
Cが2個だと14円で残り24円はBが4個で残り4個がA
Cが0個だと0円で残り38円をA,Bで作れないからNG
つまり解は(A,B,C)=(4,4,2)しかない
すごすぎるだろ、日本の未来を頼む
354: デフォルトの名無しさん [sage] 2024/06/03(月) 13:25:02.42 ID:21u+58W3(1) AAS
>>348348(5): デフォルトの名無しさん [sage] 2024/06/01(土) 10:16:34.91 ID:hzaQXY32(1/2) AAS
お題: コロン区切りの時分秒の時刻が与えられるので時分秒をそれぞれ掛け算した結果を表示せよ
例:
04:05:06
120
Windows のPowershell 上で、Ruby の1-liner を使う
末尾の改行を削除して、: で分割して、
文字列を数値型に変換してから、全ての要素を掛ける。
%Q で、ダブルクォーテーションをエスケープする。つまり、split(":")
echo '01:2:09' | ruby -ne 'puts $_.chomp.split(%Q[:]).map(&:to_i).inject(:*)'
18
355: デフォルトの名無しさん [sage] 2024/06/03(月) 15:28:01.42 ID:p+D7Hh++(1) AAS
>ruby -ne 'p eval($_.gsub(":","*"))'
1:2:9
18
388: デフォルトの名無しさん [sage] 2024/08/03(土) 22:08:55.42 ID:/AInVOhB(1/2) AAS
>>386出直し
448: デフォルトの名無しさん [sage] 2024/11/13(水) 22:22:31.42 ID:nRkxNwtG(2/2) AAS
>>435435(3): デフォルトの名無しさん [sage] 2024/10/09(水) 01:45:35.37 ID:YvVjSPhZ(2/2) AAS
頑張って読んだけどこのままでは多分スレチ、ずっと条件を簡単にして出題し直してみる。
お題
勇者(HP1000)対魔王(HP5000)、先鋒勇者、サイコロ(目は1から6)を振って出た目だけ相手にダメージを与えられ、交互に攻撃しHP0となったら負け。魔王のサイコロは1個だけど勇者のサイコロはN個(N=1~10)の時の勇者の勝率を求めよ。
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.}
466: デフォルトの名無しさん [] 2025/01/03(金) 15:30:14.42 ID:aGLRGnDr(1/3) AAS
>>464464(9): デフォルトの名無しさん [] 2025/01/03(金) 13:22:57.82 ID:dEYOS8Dq(1/2) AAS
お題
AのあとにAと同じ数だけBが続く言語エビがあるとします
文字列が入力されたときそれがエビ言語であるか判定するプログラムを作成してください
→ true
A → false
B → false
AB → true
ABB → false
AAB → false
AABB → true
ABAABBAAABBB→ true
lisp
外部リンク:ideone.com
504: デフォルトの名無しさん [sage] 2025/01/27(月) 21:24:28.42 ID:LHxZVLOG(1) AAS
>>500500(11): デフォルトの名無しさん [] 2025/01/27(月) 09:16:22.69 ID:rqFJtGlJ(1) AAS
お題
入力された文字列から重複する文字を抽出してください
T →
CG →
ATA → A
CGGA → G
ATGAT → AT
GTTGCA → GT
CCCCGGG → CG
ACTGCGAG → ACG
ATCAGAATA → AT
TGCCATGACA → TGCA
octave
外部リンク:ideone.com
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
外部リンク:try.ruby-lang.org
外部リンク:ideone.com
f = ->s {s.chars.tally.select {1 < _2}.keys.join}
611(1): デフォルトの名無しさん [sage] 2025/02/15(土) 00:28:45.42 ID:/PgyVRU9(1) AAS
>>606606(1): デフォルトの名無しさん [sage] 2025/02/14(金) 18:42:18.21 ID:RXjqXFcF(1) AAS
わからないのはどのへんなんだろう?
・型がジェネリックになっている点
・代入文がないなど関数型プログラミングになっている点
・パターンマッチングが使われている点
いずれも最近は対応している言語が増えてるような
正規表現みたい非人間的な書式はやめようぜっての
811(1): 806 [sage] 2025/08/21(木) 22:19:54.42 ID:fAlkh9Aq(1) AAS
>>799799(20): デフォルトの名無しさん [sage] 2025/08/16(土) 01:44:59.97 ID:VU+jlz0U(1/2) AAS
【問題A】
1~9を1つずつ使用して表される9桁の数Anは全部で9!(=362880)個存在する。
整数n(1≦n≦362880)が与えられたとき、n番目に小さいAnを求めよ。
(例)
1 → 123456789
2 → 123456798
3 → 123456879
123456 → 416589732
234567 → 684753219
362880 → 987654321
【問題B】
1~4を3つずつ使用して表される12桁の数Bnは全部で12!/(3!)^4(=369600)個存在する。
整数n(1≦n≦369600)が与えられたとき、n番目に小さいBnを求めよ。
(例)
1 → 111222333444
2 → 111222334344
3 → 111222334434
123456 → 222331434114
234567 → 324424331112
369600 → 444333222111
※求める数値は文字列または各桁の数の配列による表現も可能とする(123⇔"123"⇔[1,2,3])
ruby
外部リンク:ideone.com
・問題A時に若干端折る
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.044s