プログラミングのお題スレ Part22 (854レス)
上下前次1-新
抽出解除 レス栞
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
50(1): デフォルトの名無しさん [] 2023/08/18(金) 20:03:41.92 ID:Bxqhk529(1) AAS
>>4949(2): デフォルトの名無しさん [] 2023/08/18(金) 17:11:49.56 ID:TT1gR8pP(1) AAS
過去未来100年(幅201年)の範囲で
2023年とカレンダーの曜日が一致する年を全て出力せよ
また任意の指定年の前後100年で同じ動作をする(閏年も考慮)ように改変せよ
R
外部リンク:ideone.com
169: 156 [sage] 2023/11/27(月) 20:35:49.92 ID:VuTnBSK2(1) AAS
>>156156(10): デフォルトの名無しさん [sage] 2023/11/25(土) 20:07:06.40 ID:zpqT0hBE(1) AAS
お題:ランダムに1から9999までの整数を得た時、何回で全種類出揃うか確認せよ
擬似乱数列生成法については指定しないものとする
ruby
外部リンク:ideone.com
require 'set'
r = 1..9999
c = r.to_a.fill(0)
s = r.to_set
while !s.empty?
n = rand(r)
c[n - r.first] += 1
s.delete n
end
p c.sum
↓
84736
c
外部リンク:ideone.com
・lispのひとの(>>162)をパク…参考にしました
・乱数生成部分は 外部リンク[html]:c-faq.com からコピペしました
int main() {
int a[9999] = {0}, size = sizeof a / sizeof *a, sum, min, max, r, i, j, k;
srand(time(0));
#define randi(size) ((int)((double)rand() / ((double)RAND_MAX + 1) * (size)))
for (r = size; 0 < r; ) if (!a[randi(size)]++) r--;
for (sum = min = max = a[0], i = 1; i < size; i++) {
sum += a[i];
min = min < a[i] ? min : a[i];
max = a[i] < max ? max : a[i];
}
printf("%d\n%f\n[%d, %d]\n", sum, (double)sum / size, min, max);
for (i = min; i <= max; i++) {
for (k = j = 0; j < size; j++) if (i == a[j]) k++;
printf("%d\t%d\n", i, k);
}
return 0;
}
300(1): デフォルトの名無しさん [] 2024/03/03(日) 22:19:54.92 ID:ZEDvt9uH(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
>>298でnを大きくするにつれ>>296に対する高速化効果が薄れていくのは、ABをvectorでなく
配列にしたらある程度改善された。n = 5000のときの実行時間は>>296の半分以下になった。
ただし、n = 1000000まで大きくすると、296よりやっぱり遅くなる。
>>299
どんなプログラムを書いたのか見せて。
415: デフォルトの名無しさん [sage] 2024/09/01(日) 11:51:46.92 ID:Zfu0bsG/(1) AAS
>>413413(2): デフォルトの名無しさん [] 2024/09/01(日) 04:58:12.84 ID:sYmH1KkQ(1) AAS
お題:複数の文字列が格納されている配列と配列の添字がある。標準入力からnextが入力されたら文字列を表示し添字を進め、prevが入力されたら文字列を表示して添字を戻す。添字が始点と終点に達したら始点は終点に、終点は始点に移動させる。動作は例に合うように実装せよ。
v = ["aaa","bbb","ccc"]
next
aaa
next
bbb
prev
aaa
next
bbb
next
ccc
next
aaa
REM nextprev.bat
ruby -x "%~f0"
exit
#~
#!ruby
#encoding: utf-8
i=0;v=["aaa","bbb","ccc"]
while 1
puts v[i]
print "input next or prev [n/p]> "
a=$stdin.gets.chomp
if ""==a
exit
elsif /^n/=~a
i=i+1
elsif /^p/=~a
i=i-1
end
i=(i+3)%3
end
536: デフォルトの名無しさん [sage] 2025/02/07(金) 21:12:13.92 ID:n3kvQb3T(1) AAS
テス
706: デフォルトの名無しさん [sage] 2025/03/25(火) 20:18:24.92 ID:oTGl9wWX(1) AAS
>>705感心した、出題者回答C++コードはほんの少し変更するだけで簡単にBigInt/i128切り替え出来るのか
>>697-698
Rustはどうなのかな?
805(1): デフォルトの名無しさん [sage] 2025/08/17(日) 12:07:33.92 ID:R1ye1QDy(1/2) 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
>>799 c
外部リンク:ideone.com
831: 830 [sage] 2025/09/02(火) 21:36:10.92 ID:MM5Gazf9(1) AAS
>>812812(5): デフォルトの名無しさん [] 2025/08/21(木) 23:15:48.39 ID:0KQ1xtxb(1) AAS
>>799 の逆変換プログラム
R
外部リンク:ideone.com
C++
外部リンク:ideone.com
問題A, 問題Bとは違って、順列に出現するユニークな整数は1〜nの連番でなくても良いし、
出現回数はすべて同じでなくても良い。例えば、入力は [3, 1, 4, 1, 5, 9] でも良い
(ユニークな整数は1, 3, 4, 5, 9で、出現回数は1が2回、その他が1回)。
scheme (chicken 4.13)
外部リンク:ideone.com
・集計部分をalistに変えてみただけ
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.045s