[過去ログ] プログラミングのお題スレ Part18 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
606
(1): 2020/10/01(木)11:20 ID:iee67Noq(1) AAS
>>605
Haskell

astr m n = "A(" ++ m ++ "," ++ n ++ ")"
ack' 0 n = (n+1, [astr (show 0) (show n), (show $ n+1)])
ack' m 0 = let
(val, ss) = ack' (m-1) 1
in (val, (astr (show m) (show 0)) : ss)
ack' m n = let
(val1, ss1) = ack' m (n-1)
(val2, ss2) = ack' (m-1) val1
省6
607
(1): 2020/10/01(木)12:09 ID:OaA9a4hN(1) AAS
Haskellでもこんな長くなるの?
608: 2020/10/01(木)12:15 ID:O+PWz9pR(1) AAS
>>607
いや、上手な人ならもっと上手くやるはず
アホほどライブラリがあってそれ使えば楽々のハズだけど修行中の身ではこんなもんorz
609: 2020/10/01(木)14:04 ID:Am+nhG+G(1) AAS
>>606
ちょっとチューンナップ
達人なら***とか>>>とか意味わからん演算子使ってもっとスッキリ書くんだろうけどアホほどあって使いこなせんorz

haskell
----
astr m s = "A(" ++ (show m) ++ "," ++ s ++ ")"
ack 0 n = [astr 0 $ show n, show $ n+1]
ack m 0 = (astr m $ show 0) : ack (m-1) 1
ack m n = let
ss1 = ack m (n-1)
省6
610
(1): 蟻人間 ◆T6xkBnTXz7B0 2020/10/02(金)19:50 ID:gQLwfaGp(1) AAS
お題: 野球のボールの動きを物理シミュレートして、ピッチャーの投げてきたボールをより遠くにかっ飛ばすバッターAIを開発せよ。
611: 2020/10/02(金)20:54 ID:tP403VLl(1) AAS
カーブやシュートも再現しろよ
612
(1): 253 2020/10/02(金)21:41 ID:kl4hmyt8(1) AAS
AA省
613: 2020/10/02(金)21:46 ID:JDxjQVnw(1) AAS
ナイス
614: 2020/10/02(金)22:04 ID:jsz+6t1Q(1) AAS
>>612
くっそワロタ
615
(1): 253 2020/10/03(土)01:10 ID:io8Ij0O0(1/2) AAS
>>605 Perl5

use feature qw{signatures say}; no warnings 'experimental';
sub A($m, $n, $l, $r) {
 say "${l}A($m, $n)$r";
 $m ? $n
  ? A($m-1, A($m, $n-1, "${l}A(".($m-1).', ', ")$r"), "${l}A(".$m.', ', ")$r")
  : A($m-1, 1, "${l}A(".($m-1).', ', ")$r") : $n + 1;
}
say A(2, 1, '', '');

実行結果
省16
616: 253 2020/10/03(土)01:13 ID:io8Ij0O0(2/2) AAS
なんかBugってる…orz
617
(2): 2020/10/03(土)12:07 ID:xbar0BlH(1) AAS
>>605 perl5
外部リンク:ideone.com
s///e でいける
618: 2020/10/03(土)12:20 ID:nr2+4P+J(1) AAS
perlの正規表現マジック恐ろしや
619: 2020/10/03(土)12:37 ID:MOu6VxbM(1) AAS
>>617
すげえな
ほとんどワンライナーだ
620: 2020/10/03(土)12:46 ID:ul2MWjNf(1) AAS
そうなのよね
入力もらって表示→ワンステップだけ展開して戻る
の繰り返しが1番楽なんだけどなぁ
621: 253 2020/10/03(土)14:01 ID:5WkJC33J(1) AAS
AA省
622: 2020/10/03(土)18:00 ID:WWjeAKvH(1) AAS
>>605 ocaml
外部リンク:ideone.com
let (>>) f g x = g (f x)
let rec a m n p =
let () = p (Printf.sprintf "A(%d, %d)" m n) in
if m = 0 then n + 1
else if n = 0 then a (m - 1) 1 p
else a (m - 1) (a m (n - 1) (Printf.sprintf "A(%d, %s)" (m - 1) >> p)) p
let () = print_int (a 2 1 print_endline)

省15
623: 2020/10/07(水)20:33 ID:0TsEuxhN(1) AAS
>>605 octave
外部リンク:ideone.com
function c = a(m, n, p)
p(sprintf('A(%d, %d)', m, n));
if m == 0
c = n + 1;
elseif n == 0
c = a(m - 1, 1, p);
else
c = a(m - 1, a(m, n - 1, @(s) p(sprintf('A(%d, %s)', m - 1, s))), p);
省3
624
(1): 253 2020/10/08(木)02:27 ID:Gy7CYzaJ(1) AAS
藻前ら、なかなかやるなー
気に入った。
625
(2): 蟻人間 ◆T6xkBnTXz7B0 2020/10/08(木)13:59 ID:N89hoMl4(1/2) AAS
お題: ax**2+b*x+c==0という形の二次方程式を解き、全ての実数解と実数解の個数を表示する。
626
(1): 2020/10/08(木)15:03 ID:eK30Q5Ei(1) AAS
実数解はルートを含んだ形でいいのか?
あるいは小数点以下何桁まで正確に求めるのか?
627: 蟻人間 ◆T6xkBnTXz7B0 2020/10/08(木)15:04 ID:N89hoMl4(2/2) AAS
>>626
浮動小数点数でいいよ。
628: 2020/10/08(木)21:36 ID:Q4ykcHSC(1) AAS
>>624
∧_∧  / ̄ ̄ ̄ ̄ ̄
( ´∀`)< オマエモナー
(    )  \_____
| | |
(__)_)
629
(5): 蟻人間 ◆T6xkBnTXz7B0 2020/10/09(金)13:26 ID:pUAVGuih(1) AAS
お題:計算ができる文章テンプレートを実装し、つるかめ算を自動生成せよ。

文章テンプレートの例:
「ツルとカメが合わせて{$(ツルの数)+$(カメの数)}います。
足の合計本数が{$(ツルの数)*2+$(カメの数)*4}本です。
カメは何匹いますか。」

変数は「$(変数名)」のように表し、その具体的な値は入力として与えられる。
計算式は{ }で囲って表す。
計算式は変数や定数、加減乗除の演算子、または丸カッコを含むことができる。

入力の例:「ツルの数=3, カメの数=4」
630: 2020/10/09(金)14:02 ID:/NdRCF04(1/2) AAS
>>625 js
function quadraticWithCount(a, b, c) {
const inSqrt = b ** 2 - 4 * a * c
if (inSqrt < 0) return [[], 0]
const l = - b / (a * 2)
if (inSqrt === 0) return [[l], 1]
const r = Math.sqrt(inSqrt) / (a * 2)
return [[l - r, l + r], 2]
}

console.log(quadraticWithCount(3, -2, -1))
省5
631: 蟻人間 ◆T6xkBnTXz7B0 2020/10/09(金)14:14 ID:LR5flFjI(1/3) AAS
>>629
追記: パーサーを作れない人はevalを用いても構わない。
632: 2020/10/09(金)14:14 ID:/NdRCF04(2/2) AAS
>>625 js 改善
function quadratic(a, b, c) {
const rt = Math.sqrt(b ** 2 - 4 * a * c)
return [(-b + rt) / (2 * a), (-b - rt) / (2 * a)]
}

function quadraticReal(...abc) {
const ans = quadratic(...abc)
const [a1, a2] = ans
if (isNaN(a1)) return []
if (a1 === a2) return [a1]
省10
633: 2020/10/09(金)17:52 ID:gniylpO4(1) AAS
>>629 Ruby
ツルの数 = 3
カメの数 = 4
Template =<<_EOT_
「ツルとカメが合わせて{$(ツルの数)+$(カメの数)}います。
足の合計本数が{$(ツルの数)*2+$(カメの数)*4}本です。
カメは何匹いますか。」
_EOT_

puts Template.gsub( /\{(.*?)\}/ ){ eval $1.gsub( /\$\((.*?)\)/ ){ $1 } }
634
(1): 253 2020/10/09(金)22:43 ID:/QeZd0d9(1) AAS
>>629 Perl5

use utf8;
no warnings 'utf8';
$ツルの数 = 3;
$カメの数 = 4;
print <<EOF
「ツルとカメが合わせて@{[${ツルの数}+${カメの数}]}います。
足の合計本数が@{[${ツルの数}*2+${カメの数}*4]}本です。
カメは何匹いますか。」
EOF
省5
635
(4): 蟻人間 ◆T6xkBnTXz7B0 2020/10/09(金)23:14 ID:LR5flFjI(2/3) AAS
お題: 2つのRGBカラーが#RRGGBB形式で与えられる(RRGGBBは六桁の十六進数とする)。
2つの中間色を#RRGGBB形式で出力せよ。
可能ならばこれら3つの色をカラーバーとして表示せよ。
636
(1): 蟻人間 ◆T6xkBnTXz7B0 2020/10/09(金)23:26 ID:LR5flFjI(3/3) AAS
>>635
入力例1: #112233, #99AAFF
入力例2: #AD03ff, #a39e75
637: 2020/10/09(金)23:55 ID:ACx6TREf(1) AAS
>>635,636
自明な入力例だけを示しても、出力例も出さないと意味ないだろう。
2色の中間色ってのが曖昧じゃね?
単にR,G,Bそれぞれの平均を取るだけなのか、赤と紫の中間が赤紫になるように循環する色相で中間をとるのかとか。
638
(1): 2020/10/10(土)02:56 ID:KFXrJR76(1) AAS
問題が玉石混合だなぁ
639: 2020/10/10(土)07:06 ID:PdovQueR(1) AAS
>>634
>変数は「$(変数名)」のように表し、
640
(13): 2020/10/10(土)07:45 ID:nh4sk35x(1/2) AAS
お題: 20201010と出力してください。ただしコードに使っていい数字は1のみです。
641: 2020/10/10(土)08:25 ID:qt6u2bFw(1) AAS
>>640 python

a=1;b=a+a;c=a-a
print(b,c,b,c,a,c,a,c,sep='')
#出力20201010
642: 2020/10/10(土)10:53 ID:nh4sk35x(2/2) AAS
>>640 自分で js
const t = `
`.charCodeAt()
console.log(t + t + "" + (t + t) + t + t)

const m = "ϲ".charCodeAt()
console.log(m + m + "" + m)
643: 2020/10/10(土)12:06 ID:0z4oJBva(1/2) AAS
>>640
js本日限定
new Date().toLocaleDateString().split(/-|\//).join``
//=> "20201010"
644: 2020/10/10(土)14:54 ID:iOujIiR/(1/3) AAS
>>638
×こんごう
○こんこう
645
(1): 2020/10/10(土)14:57 ID:iOujIiR/(2/3) AAS
>>640
Java
外部リンク:paiza.io
646: 2020/10/10(土)15:40 ID:Duwb5Fsi(1) AAS
>>645
012にOIZ使うのセンスある
647
(1): 2020/10/10(土)18:37 ID:jNM1f0U4(1) AAS
>>640 C
外部リンク:ideone.com
648: 2020/10/10(土)18:54 ID:V01gi3BN(1) AAS
>>647
Windowsでもそのままでいけるのか?
649
(5): 蟻人間 ◆T6xkBnTXz7B0 2020/10/10(土)19:24 ID:c6WyhNHP(1) AAS
お題: 振動数1000Hzの音を1秒間発振せよ。
650: 2020/10/10(土)19:32 ID:53GLINoh(1) AAS
>>640 c
外部リンク:ideone.com
651: 2020/10/10(土)19:46 ID:LCYuVeVr(1) AAS
haskell

import Data.Maybe
main = print $ product $ map ((fromJust).(flip lookup (zip ['\t'..] [1..]))) "&myC"
652: 2020/10/10(土)21:44 ID:0z4oJBva(2/2) AAS
>>649 js
var ctx = new window.AudioContext
var osc = ctx.createOscillator()
osc.type = 'sine'
osc.frequency.value = 1000
osc.connect(ctx.destination)
osc.start()
osc.stop(1)
653: 2020/10/10(土)23:07 ID:t1LUP7rm(1) AAS
>>640
haskell 改良

unicode = length . tail . (enumFromTo minBound)
main = print $ product $ map unicode "ാᝇ"
654: 2020/10/10(土)23:18 ID:iOujIiR/(3/3) AAS
>>635
Java
外部リンク:paiza.io
画像リンク[png]:dotup.org
655: 2020/10/11(日)00:16 ID:6GsmNhIZ(1) AAS
>>640 JavaScript
[1+1,1-1,1+1,1-1,1,1-1,1,1-1].reduce((acc,n)=>acc+n,'')
656: 2020/10/11(日)01:54 ID:eYi6TEVp(1/3) AAS
>>605
Java
外部リンク:paiza.io
657: 2020/10/11(日)08:58 ID:luIvAMCe(1) AAS
>>640 J
smoutput ,&":/ 'amp' i. 'papamama'
658: 2020/10/11(日)11:20 ID:eXVrSXVr(1) AAS
>>640 bash
aa=1; bb=$((aa-aa)); cc=$aa$bb$aa$bb; printf "%d" $((cc+cc)) $cc; echo
659: 2020/10/11(日)17:59 ID:/6XslNRS(1/2) AAS
>>629
Perl
外部リンク:paiza.io

eval が使えて楽なので、つい。
660: 2020/10/11(日)18:12 ID:eYi6TEVp(2/3) AAS
>>602
Java
外部リンク:paiza.io
661: 2020/10/11(日)19:16 ID:/6XslNRS(2/2) AAS
>>635
Kotlin
外部リンク:paiza.io

paiza.io はHTMLで出力させてブラウザに表示できるのでカラーバーも出してみました。
662: 2020/10/11(日)19:36 ID:eYi6TEVp(3/3) AAS
これは良いこと聞いた
663
(1): 2020/10/11(日)19:48 ID:ki6dTuuo(1) AAS
>>640 Common Lisp (SBCL, 処理系依存)
外部リンク:ideone.com
664: 2020/10/11(日)20:05 ID:FQjAt+Dq(1) AAS
>>663
かわいい
665: 2020/10/11(日)20:30 ID:vt3DXswM(1) AAS
>>640 brainfuck

>+++++++[<+++++++>-]<+.--.++.--.+.-.+.-.
666: ◆QZaw55cn4c 2020/10/11(日)23:30 ID:A2vGg89g(1) AAS
>>605
C(C++) 2chスレ:tech
667
(3): 蟻人間 ◆T6xkBnTXz7B0 2020/10/11(日)23:57 ID:4cQ/GxGI(1) AAS
お題: 整数0〜10の一様分布の乱数を百回発生させて、その統計結果を基に各整数を横軸、回数を縦軸とする棒グラフ(ヒストグラム)を描画し(棒の最大幅32字)、ほぼ一様であることを確かめなさい。
668: 2020/10/11(日)23:59 ID:B+MSoWxK(1) AAS
paiza.io は、text, html, json で出力できるのか

html も、部分的なタグだけを書いても動くのか
669
(1): 蟻人間 ◆T6xkBnTXz7B0 2020/10/12(月)00:01 ID:rx5xRSFU(1) AAS
>>667 訂正。

(誤)各整数を横軸、回数を縦軸とする棒グラフ
(正)各整数を縦軸、回数を横軸とする棒グラフ
670: 2020/10/12(月)01:06 ID:eqKg5iqj(1) AAS
haskell

import Data.List
import System.Random

trial records = do
x <- randomRIO (0, 1) :: IO Double
return $ (truncate $ x * 11) : records

experience = iterate (>>= trial) (return [0..10])
showrecord (x,y) = let
clsstr = id
$ reverse
省15
671: 2020/10/12(月)01:14 ID:hVCmG980(1) AAS
>>640
Kotlin
外部リンク:paiza.io

ちょっと変わった感じにしようと思ってこうした。
672: 2020/10/12(月)08:18 ID:fHHXzdlp(1) AAS
>>667
二項分布になるんじゃないかなあ
673: 2020/10/14(水)15:32 ID:M1NONSBM(1) AAS
>>649 オーディオ系はシステム依存度が高いから余りサンプルが出てこないね。 WindowsやMacOSなら簡単そうだが
1kHz の音源ファイルを使うのは違反かな?
674: 蟻人間 ◆T6xkBnTXz7B0 2020/10/14(水)17:27 ID:TNR/wFHW(1/4) AAS
>>649 C/C++ with Win32
#include <windows.h>
int main(void)
{
Beep(1000, 1000);
}
675: 2020/10/14(水)17:57 ID:qOYZdiW9(1) AAS
答え出てきても試しようがない
676: 蟻人間 ◆T6xkBnTXz7B0 2020/10/14(水)18:19 ID:TNR/wFHW(2/4) AAS
>>649 Python with Windows
import winsound
winsound.Beep(1000, 1000);
677: 蟻人間 ◆T6xkBnTXz7B0 2020/10/14(水)18:24 ID:TNR/wFHW(3/4) AAS
>>649 Python with Mac
import os
os.system('play -n synth 1 sin 1000');
678
(1): 2020/10/14(水)18:36 ID:Azmo5ss/(1) AAS
シェル経由でSoX playコマンド呼んでるだけやんけ
Pythonもmacも関係ねぇわ
679: 2020/10/14(水)19:17 ID:Y0U/d7P+(1) AAS
OSにつく前置詞はwithじゃなくてonだろハゲ
680: 2020/10/14(水)19:30 ID:pZU5VHHG(1) AAS
試すと音が出て煩そうだから試す気になれない。
681: 蟻人間 ◆T6xkBnTXz7B0 2020/10/14(水)19:50 ID:TNR/wFHW(4/4) AAS
テレビの自主規制音と同じ音だよ。
外部リンク:ja.wikipedia.org
682: 2020/10/15(木)00:45 ID:BUh584nA(1) AAS
>>678 iOS じゃ、play コマンドがなさそうなんだよな。
683: 2020/10/15(木)01:18 ID:fqrOjoDi(1) AAS
結局このスレで盛り上がるのは環境によらず言語によらず、でも多少は骨のあるようなお題なんだよな
へぇその言語ならそんなにキレイに書けるのかとか普段自分が使ってない言語ではどうやって実現できるのか眺めたりするのが面白い
音鳴らすなんてお題として面白いわけがない
684: 2020/10/15(木)01:40 ID:S6IC+plr(1) AAS
ヒント:出題者
685
(2): 2020/10/15(木)11:44 ID:cDg3UiVL(1/3) AAS
蟻人間さんへのお題:
文字列を受け取って、RFC 5322にしたがってSubjectヘッダを出力してください(MUST、SHOULDを満たすこと)
文字コードはUTF-8、エンコーディングはBエンコードを使用してください
686
(2): 蟻人間 ◆T6xkBnTXz7B0 2020/10/15(木)13:28 ID:s1gNbcw/(1) AAS
AA省
687: 蟻人間 ◆T6xkBnTXz7B0 2020/10/15(木)13:49 ID:IXtC9lOP(1) AAS
>>686 訂正。

(誤) while len(text) > 78:
(正) while len(text) >= 78:
688: 2020/10/15(木)14:30 ID:cDg3UiVL(2/3) AAS
>>686
いろいろ違うので・・・メールのソース眺めたが良いです
689: 2020/10/15(木)19:14 ID:QzXinxJa(1/3) AAS
頭の悪いお題を連投してるやつはやっぱり頭悪いんだな
690: 2020/10/15(木)19:22 ID:cDg3UiVL(3/3) AAS
そんなことないと思うけどな
あまり他人の悪口言わない方が良いよ
691: 2020/10/15(木)19:28 ID:QzXinxJa(2/3) AAS
くっそみたいなお題延々と出し続けてウザいじゃん
692: 2020/10/15(木)19:29 ID:MTvivIgb(1/2) AAS
>>629なんかはいいと思うんだけどな
eval使えないHaskellerにはいい練習問題になってる
693
(1): 2020/10/15(木)19:38 ID:QzXinxJa(3/3) AAS
ウェブアプリつくれだのGUIアプリつくれだの酷い事散々言いまくってるじゃん
◆QZaw55cn4cの方がまだマシ
694: 2020/10/15(木)19:40 ID:MTvivIgb(2/2) AAS
まぁ音出せとかカラーバー出せとかはクソお題だな
695
(16): 2020/10/16(金)19:48 ID:2tllxc0n(1) AAS
お題
自然数nを 2進数にした時、 1が連続する個数の最大値を求める。

20201016 -> 5
696: 2020/10/16(金)20:25 ID:YQH8/KbW(1) AAS
haskell

import Data.List

maxConsOne = maximum . map length . filter ((==1).head) . group . unfoldr (\n ->if n == 0 then Nothing else Just (mod n 2, div n 2))

main = print $ maxConsOne $ 20201016
----
5
697: 2020/10/16(金)21:03 ID:a9PKFHNt(1) AAS
>>695 ruby
f = ->(n) {n.to_s(2).chars.chunk(&:itself).map {|k, a| k == '1' ? a.size : 0}.max}
698: 2020/10/16(金)21:35 ID:XtprH8ZD(1) AAS
>>695 JavaScript
const f = (n = 0) => Math.max(...(n.toString(2).match(/1+/g) ?? ['']).map(m => m.length))

console.log(f(20201016)) //=> 5
699: 253 2020/10/16(金)23:46 ID:5gS0lg4h(1) AAS
>>695 Perl5

use List::Util max;
print max map{length} sprintf('%b', 20201016) =~ /(1+)/g;

実行結果
$ perl 18_695_bin1.pl
5
700
(2): 2020/10/17(土)00:12 ID:7ct7R1y+(1) AAS
>>695 Ruby

p 20201016.to_s(2).split("0").max.size
701: 2020/10/17(土)00:24 ID:u2s9P3C4(1/2) AAS
haskell
無名関数というインチキ使ってしまったので再挑戦バージョン

import Data.List

main = print $ maximum . map sum . group . map (flip mod 2) . takeWhile (/=0) . iterate (flip div 2) $ 20201016
702
(2): ◆QZaw55cn4c 2020/10/17(土)00:46 ID:4JRxXuyk(1/2) AAS
>>695
外部リンク:ideone.com
703
(1): 2020/10/17(土)01:58 ID:S6LboNFt(1/3) AAS
>>695 Ruby
n = 20201016
nl = 0
while n > 0
nl = ((nc = (n.odd?)? nc + 1 : 0) > nl)? nc : nl
n >>= 1
end
puts nl
704
(2): 2020/10/17(土)01:59 ID:u2s9P3C4(2/2) AAS
>>702
125の時1になった
705: 2020/10/17(土)02:41 ID:AbkDXvLA(1) AAS
これだからQZ
1-
あと 297 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.287s*