プログラミングのお題スレ Part15at TECH
プログラミングのお題スレ Part15 - 暇つぶし2ch650:デフォルトの名無しさん
19/10/01 09:53:39.77 PlApYvsP.net
配列使えるシェルもあるからそういうの使えば楽かも
shでもsetすりゃ配列だが
まあでも遅そうで実用性なさげ

651:デフォルトの名無しさん
19/10/01 12:56:02.79 ygg8X6aa.net
>>629 コマンドプロンプト(Windows)
URLリンク(ideone.com)
おそい…コマンドプロンプトよーわからんですよ

652:629
19/10/01 13:54:46.98 NlppalS8.net
>>637
スゴイw
やれば出来るものですね。
10000を超えても出力し続けてますw

653:デフォルトの名無しさん
19/10/01 14:02:08.82 ygg8X6aa.net
あ、10000までの制限がないww
limit=100までにしてるから10000以降に出た数値は信頼性ないwww
修正したものを実行して確認中…10000で止まったらUPる…遅い(´・ω・`)

654:デフォルトの名無しさん
19/10/01 14:07:52.43 ygg8X6aa.net
>>629 コマンドプロンプト (>>637の修正版)
URLリンク(ideone.com)
637は書いてたはずのecho 2も消えてた(´・ω・`)

655:デフォルトの名無しさん
19/10/01 15:07:38.24 ygg8X6aa.net
まあまだ 49(7*7) 289(17*17) 961(31*31) 2209(47*47) 3721(61*61) 6241(79*79)を出力するバグがあったわけだがw

656:デフォルトの名無しさん
19/10/01 15:44:01.75 ygg8X6aa.net
>>629 コマンドプロンプト 修正版2
URLリンク(ideone.com)
もうバグないといいな

657:デフォルトの名無しさん
19/10/01 16:30:10.47 7XyHUR/V.net
シェルスクリプトでチョコチョコと何かやる分には良いが、プログラムを書くというのとは違うだろ。
プログラムはそれなりのものた^_^書いた方が効率的。
どっちからでも起動できるんだから餅は餅屋。

658:デフォルトの名無しさん
19/10/01 16:32:34.41 9fvqkmcJ.net
^_^;

659:デフォルトの名無しさん
19/10/01 17:17:18.11 PlApYvsP.net
>>629
bash
URLリンク(paiza.io)
でもやっぱ遅くてpaiza.ioではtimeoutして最後まで出てこないw

660:デフォルトの名無しさん
19/10/01 21:04:23.70 rsBZCnlu.net
>>629
遅くても構わなければ、PowerShellではとても簡潔に書ける。
$p = 2..10000
while ($p) {
  $p[0]
  $p = @($p |? {$_ % $p[0]})
}

661:デフォルトの名無しさん
19/10/01 21:59:35.52 Ueonb/Q5.net
誰が遅くても構わないと言った

662:デフォルトの名無しさん
19/10/01 22:03:29.87 x7eW/FrR.net
お題: ハッシュマップを実装せよ

663:デフォルトの名無しさん
19/10/01 22:05:13.75 ygg8X6aa.net
俺が書いたコマンドプロンプトのよりは早いぞw

664:デフォルトの名無しさん
19/10/01 22:21:18.49 H9NeHROf.net
>>648
ジェネリックに書くとして、ハッシュ関数はどうやって書けばいいんだ?
std::vector<std::list<T>>> HashMap;
っていう感じのことはできそうではあるけどな。

665:デフォルトの名無しさん
19/10/02 07:55:46.84 YpMEiTCH.net
# Java
HashMap<String, Integer> shop = new HashMap<String, Integer>();
shop.put("apple", 100);
shop.put("banana", 125);
System.out.println(shop.get("banana")); //=> 125
# Python
shop = { 'apple':100 , 'banana':125 }
print(shop['banana'])
# 125

666:デフォルトの名無しさん
19/10/02 12:25:17.61 56vpBHGI.net
それは実装ではない。

667:デフォルトの名無しさん
19/10/02 13:20:24.28 +RotAwEg.net
>>648
このスレの住民のレベルに合っていてかつプログラマにとって必要不可欠な知識なので良いお題

668:デフォルトの名無しさん
19/10/02 13:31:58.92 vkK/4cs1.net
実装って何を言ってるのかな? コンパイラを作れってこと? それとも基本関数を使ってそれらしいハッシュマップを作れという事?
実装されている言語にさらに実装しろって意味不明。

669:デフォルトの名無しさん
19/10/02 14:40:31.57 +RotAwEg.net
ハッシュマップのアルゴリズム部分を自分で書けってことだろ
アスペかよ

670:デフォルトの名無しさん
19/10/02 14:58:20.33 h9bkbZIX.net
俺健常者だけど言ってる事正直よくわからんのだが

671:デフォルトの名無しさん
19/10/02 15:31:03.84 vkK/4cs1.net
言わんとすることは何となくわかるんだが、多分ジェネリックが有る言語なら比較的考えやす�


672:「がジェネリックがない言語ではどう解釈するのかな。



673:蟻人間
19/10/02 16:28:04.58 Q9AIQiw1.net
お題:文字列操作のUndo/Redoを実装せよ。
文字列Sに対し
(a) 文字位置indexからcount文字を別の文字列strで置き換える(replace)、
(b) 文字位置indexからcount文字を削除する(erase)、
(c) 文字位置indexに別の文字列strを挿入する(insert)
という操作が連続的に可能であるとき、これらの操作に対するUndo/Redo(元に戻す/やり直す)を実装せよ。
ただし操作対象の文字列Sが長いときにメモリーを無駄にする実装にしてはいけない。
解答例:
Undo/Redo framework for C++11
URLリンク(github.com)

674:デフォルトの名無しさん
19/10/02 19:48:30.85 By3xLmz3.net
ここの回答に使われる言語でハッシュマップ自分で実装せなあかん言語なんて少ないと思うが?

675:デフォルトの名無しさん
19/10/02 20:14:50.09 uTylPaUx.net
ジェネリックなハッシュ関数の書き方が解らない。Orz

676:デフォルトの名無しさん
19/10/02 20:29:20.39 OIQKJ8Sl.net
シリアライズ、文字列化できてればCRC32でも一応ハッシュとして使える

677:デフォルトの名無しさん
19/10/02 20:36:10.78 uTylPaUx.net
>>661
小規模な問題解くのにミドルウェアいるんすな。辛い。

678:デフォルトの名無しさん
19/10/02 20:49:55.37 OIQKJ8Sl.net
そんなに汎用的、一般的なのを作る必要もないとおもうので
入力は文字列限定で動くやつ作ればクリアでは?

679:デフォルトの名無しさん
19/10/02 21:00:41.50 uTylPaUx.net
>>663
解った文字列やってみるわ。

680:デフォルトの名無しさん
19/10/02 21:46:18.99 uTylPaUx.net
>>648
URLリンク(coliru.stacked-crooked.com)
C++。コンストラクタ起動式って17からやったっけ?
とりあえず作ってみたが・・・。
今、調子悪くて困ってる。

681:デフォルトの名無しさん
19/10/02 21:48:13.96 uTylPaUx.net
ハッシュ関数は適当。昔2chで見たのパクった。
HMのサイズ7にしておけばよかった。素数だからな。

682:デフォルトの名無しさん
19/10/02 21:59:13.49 bMxkjAXQ.net
お題: 簡易的なXMLをパースして構造を出力せよ
in < <div><p><a></a></p></div><span><p></p></span>
out >
div
__p
____a
span
__p

683:デフォルトの名無しさん
19/10/02 22:48:58.72 2Yo9PRwa.net
>>661
それかsumでいいやん、conflictしたらリスト管理で一丁上がり

684:デフォルトの名無しさん
19/10/02 22:50:04.70 XyzGBTdX.net
>>667
C++
URLリンク(ideone.com)

685:デフォルトの名無しさん
19/10/03 08:18:12.13 z1c5xmGq.net
>>629
> というか、技量の程度が疑わてしまうのでお勧めしない
人の心配する前に自分の出題技量の程度を心配しなよ…

686:デフォルトの名無しさん
19/10/04 01:29:13.30 rw3arA+q.net
いいじゃねーかそんなこまけーことどうでも
ケツの穴のちいせぇやろうだな。
何ならおじさんが広げてやろうかw

687:デフォルトの名無しさん
19/10/04 01:59:12.37 0BDgocBX.net
アッー!

688:デフォルトの名無しさん
19/10/04 04:07:06.69 /Ff7i02R.net
>>620
URLリンク(ideone.com)
C++。多分できた。
バグの原因は変数がマイナスを扱えていないことだった。

689:デフォルトの名無しさん
19/10/04 14:06:50.47 IeSaX57c.net
>>629
の出題意図を読み取れば、
記憶域を余り自由に使えない環境で
如何に工夫して目的が達成できるか
ということではないかと
その意味では、Power-shellは少し
強力杉だから除外すべきだったかも
知れないが(遅いから使われる
ことは少ないだろけどスクリプト言
語処理系であるとも言えなくもないし)

690:デフォルトの名無しさん
19/10/04 14:58:22.06 BEYT4ZYw.net
シェルスクリプトって�


691:ウ々プログラミング言語じゃないからな。 あくまでも補助的なもの。 それでプログラミングすると言うのは本末転倒。 間違った方向性でしかない。 貧弱な環境でも使えるものと言うなら、BASIC や、Python の組込型がコンパクト。 PIC や子供のおもちゃにすら入ってる。 百円のチップにすら入ってるからな。 コンパイラでも良いのならCが最もシンプル。



692:デフォルトの名無しさん
19/10/04 17:29:00.38 uYF9K7e8.net
またプログラム言語のオレオレ定義かよw

693:デフォルトの名無しさん
19/10/04 17:37:04.67 ordI0mDW.net
それ以上に謎の空白が気になる

694:675
19/10/04 18:12:04.35 aN85/uHn.net
わりいわりい、iOS13になって、日本語の途中の空白は全て全角になったから、なんか間抜けな感じになったな。
良いか悪いかわからんが慣れてくれ。

695:デフォルトの名無しさん
19/10/04 18:43:32.54 hcjI0QEW.net
。の後にスペースをひとつ入れているようだ

696:デフォルトの名無しさん
19/10/04 18:44:20.57 hcjI0QEW.net
スペース入れなきゃいいのでは?

697:デフォルトの名無しさん
19/10/04 19:36:54.12 bnA3YiVJ.net
空白なのは頭ん中だけにしとけwww

698:デフォルトの名無しさん
19/10/05 00:51:48.39 pioYL/z5.net
空っぽのほうが夢詰め込めるぞ

699:デフォルトの名無しさん
19/10/05 01:36:41.50 iITy9V8b.net
空っぽかと思ったら、実は分厚い頭蓋骨が詰まった中心に
ポツンとノミのような脳みそがある、石頭だったでごじゃる

700:637
19/10/05 08:57:02.16 4K3q4mZL.net
>>629 コマンドプロンプト 高速化版
URLリンク(ideone.com)
>>642の6倍くらい速くなった…うちの環境だと>>646よりはやくなったどーw

701:デフォルトの名無しさん
19/10/05 15:19:46.96 6iFRuM3K.net
>>629 bash 4.3.42(3)
n=10000
eval "a=('' '' {2..$n})"
for i in ${a[@]}; do
 if [ ${a[$i]} ]; then
  echo $i
  for ((j=2*$i; j<=$n; j+=$i)); do
    unset a[$j]
  done
 fi
done
実行結果
$ bash 15_629_prime.sh
2
3
5
7

9941
9949
9967
9973

702:デフォルトの名無しさん
19/10/05 15:21:16.04 6iFRuM3K.net
>>685 実行結果、貼りそこなって変な改行は入ってた…orz 訂正
実行結果
$ bash 15_629_prime.sh
2
3
5
7

9941
9949
9967
9973

703:デフォルトの名無しさん
19/10/05 15:31:29.76 6iFRuM3K.net
>>686 いや、for ((j=$i*$i; j<=$n; j+=$i)); do だよ間違えた、25%早くなる
n=10000
eval "a=('' '' {2..$n})"
for i in ${a[@]}; do
 if [[ ${a[$i]} ]]; then
  echo $i
  for ((j=$i*$i; j<=$n; j+=$i)); do
    unset a[$j]
  done
 fi
done

704:デフォルトの名無しさん
19/10/05 16:09:49.40 6iFRuM3K.net
>>629 >>687の実行結果
URLリンク(ideone.com)

705:デフォルトの名無しさん
19/10/05 17:13:25.01 6iFRuM3K.net
>>687
eval "a=('' '' {2..$n})"
for i in ${a[@]}; do
 if [[ ${a[$i]} ]]; then
この書き方、a[]の最初の0,1番目の要素に空文字を設定しておいて
それを配列のインデックスとして使い、あまりいい書き方じゃないと気がついた
動いているんで、あせって直さないでおくけど ゴメンね~

706:デフォルトの名無しさん
19/10/05 20:48:42.33 oVPf95FK.net
お題:
URLリンク(regexcrossword.com)
のようなHEXマスの正規表現クロスワードパズルのソルバーを実装せよ。
n=1でいいので処理時間も報告せよ。

707:デフォルトの名無しさん
19/10/05 21:56:27.55 Lt/DoxvR.net
>>690
辞書データぷりーず

708:デフォルトの名無しさん
19/10/05 22:00:12.06 4K3q4mZL.net
このソルバーに辞書データっているか?

709:デフォルトの名無しさん
19/10/05 22:27:44.93 NXndjuW4.net
>>691
出題者ではないが、まず、完成図面を作って、そこ�


710:ゥら問題を作ったほうが早そうだ。 ヘックスの扱い方わからねーんだ俺。 昔聞いたことあるけど、そのうち・・・と思ってたら曖昧になってしまった。



711:デフォルトの名無しさん
19/10/05 23:11:05.60 6iFRuM3K.net
>>667 Perl5
$in = '<div><p><a></a></p></div><span><p></p></span>';
use XML::Simple;
$xml = new XML::Simple->XMLin('<document>'.$in.'</document>');
use Data::Dumper;
$Data::Dumper::Terse = 1;
print Dumper $xml;

実行結果
~ $ perl 15_667_Simple.pl
{
 'div' => {
  'p' => {
   'a' => {}
  }
 },
 'span' => {
  'p' => {}
 }
}

712:デフォルトの名無しさん
19/10/06 00:03:34.99 tnh9RMO0.net
とりあえず>>690を手動で解くのに2時間かかったw
お題は思いついたらやる

713:デフォルトの名無しさん
19/10/06 05:37:10.28 oevqPO9x.net
お題: L形図形を表示する
[入力]
1
[出力]
a
bc
[入力]
2
[出力]
ba
ca
abcc
bcab
[入力]
3
[出力]
bacb
cbaa
acba
bcca
bcabcccb
cabcabca
abccaabc
bcabbcab

714:デフォルトの名無しさん
19/10/06 05:55:18.89 vrVeYjyl.net
>>696
最後のやつが4ではなく3?
それと文字はabc使っているが、どういう規則で並べるのか?

715:デフォルトの名無しさん
19/10/06 05:58:05.67 lJB/egMg.net
カオス

716:675
19/10/06 09:02:51.40 O+kT1S2P.net
最後は4だろ

717:デフォルトの名無しさん
19/10/06 09:24:22.51 +7MXB6fE.net
>>697
おそらく1のパターンのL字を4つで向きを変えてくっつけて大きなL字にしたものが2のパターン。2を4つ使って同じことをやって3を作ってるということだと思う。愚直に再帰的にやれば簡単そう。

718:デフォルトの名無しさん
19/10/06 10:20:09.68 tnh9RMO0.net
>>696
入力3の出力、一か所間違えとるよな?w

719:デフォルトの名無しさん
19/10/06 10:43:36.50 tnh9RMO0.net
>>696 Java
URLリンク(ideone.com)

720:デフォルトの名無しさん
19/10/06 17:34:25.93 kRqXlweR.net
お題: プログラム実行後にプログラム自身を削除するプログラムを作れ
実行内容は以下のメッセージを出力する
「このプログラムが起動するのは一度きりである。実行ののち、消去される。」

721:デフォルトの名無しさん
19/10/06 17:53:36.15 VH97tuta.net
>>703
echo このプログラムが起動するのは一度きりである。実行ののち、消去される。
rm -rf /

722:675
19/10/06 18:05:59.73 m+CayYCA.net
>>703 そんな問題は却下。 
どんな問題でもファイルを削除する様な問題は出してはいけない。
ど素人もいるんだからそんな問題は出すべきではない。

723:デフォルトの名無しさん
19/10/06 20:06:09.43 +aq+gJyQ.net
>>704
大抵の環境でコマンド通らないんじゃないかそれ

724:デフォルトの名無しさん
19/10/06 20:12:57.33 XBuBF2Rc.net
#!/bin/sh
echo このプログラムが起動するのは一度きりである。実行ののち、消去される。
\rm -f $0

725:デフォルトの名無しさん
19/10/06 20:16:32.32 lJB/egMg.net
lol $0 じゃなくて / にしてるのかwww

726:デフォルトの名無しさん
19/10/06 20:19:37.81 bPt7YQEe.net
>>707みて、できなくはないが、やりたくない気分になった。
URLリンク(www.t-net.ne.jp)
上記を使えば、PGからコマンドラインに干渉できる。が!ねぇ・・・。
場所もargc[0]に書いてあるんだけどねぇ・・・。
WA.

727:デフォルトの名無しさん
19/10/06 21:19:08.41 QZjIPE+j.net
シェルスクリプト総合 その31
スレリンク(tech板)

728:デフォルトの名無しさん
19/10/07 13:22:48.77 lSqRbxbA.net
>>703
Linux等のUNIX系OS
at now +1 min
などとやって at job が一分後に動くようにして次の1行を入力してから Ctrl+D で終了させる。
echo 'このプログラムが起動するのは一度きりである。実行ののち、消去される。'
その後1分待つと上記文言の出力後 at job は削除される。
ただし通常の出力先である標準出力はないことになっているのでatによって拾われてメールでエラーメッセージと共に送られてくる。
それを見たい場合はmailコマンドで送られてきたメールの内容を見る等する。

729:蟻人間
19/10/07 18:38:53.78 tyyduGK2.net
>>703 C++/Win32
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
int main(int argc, char **argv)
{
printf("このプログラムが起動するのは一度きりである。実行ののち、消去される。\n");
FILE *fp = fopen("delete-me.bat", "w");
fprintf(fp, "@echo off\n");
fprintf(fp, ":retry\n");
fprintf(fp, "del \"%s\"\n", argv[0]);
fprintf(fp, "if exist \"%s\" goto retry\n", argv[0]);
fprintf(fp, "del delete-me.bat\n");
fclose(fp);
ShellExecuteA(NULL, NULL, "cmd", "/c delete-me.bat", NULL, SW_HIDE);
return 0;
}

730:デフォルトの名無しさん
19/10/07 22:21:05.16 aU+ghkHH.net
>>703 Perl5
print "このプログラムが起動するのは一度きりである。実行ののち、消去される。\n";
unlink $0;

実行結果
~ $ perl 15_703.pl
このプログラムが起動するのは一度きりである。実行ののち、消去される。
~ $ ls -o 15_703.pl
/usr/bin/ls: cannot access 15_703.pl: No such file or directory

嫌なプログラミンッグだな、一歩書き間違がや大参事。
こういうお題はご遠慮願いたいものだ…

731:デフォルトの名無しさん
19/10/07 22:32:50.62 aU+ghkHH.net
すまぬ >>713 は題意とは違うな。
プログラムの実行が終了してから削除されるわけか…
>>703 bash
(sleep 4; rm -f $0)&
echo このプログラムが起動するのは一度きりである。実行ののち、消去される。
実行結果
$ bash 15_703.sh
… 数秒後
$ ls -o 15_703.sh
ls: 15_703.sh にアクセスできません: No such file or directory

732:デフォルトの名無しさん
19/10/07 22:35:14.10 aU+ghkHH.net
>>714 実行結果貼りそこなったorz
$ bash 15_703.sh
このプログラムが起動するのは一度きりである。実行ののち、消去される。
$ ls -o 15_703.sh
-rw-r--r-- 1 ******** 98 10月 7 22:29 15_703.sh
… 数秒後
$ ls -o 15_703.sh
ls: 15_703.sh にアクセスできません: No such file or directory

733:デフォルトの名無しさん
19/10/07 23:18:10.62 Hq5Oz5C1.net
MSX BASIC
10 print"オハヨウフェルペスクン,コンカイノキミノニンムダガイカリャクナオコノテープハジドウテキニショウメツスル"
20 new

734:デフォルトの名無しさん
19/10/07 23:48:42.06 ti3U/Qjr.net
>>703
URLリンク(ideone.com)
C++。自分ができるのはここま・・・で・・・だ。。。
うぼぁあああああああ。

735:蟻人間
19/10/07 23:54:31.61 9cpaLYwd.net
実行時にexeにロックがかかるから、実行終了を待つsystem関数では消せないんだ、これが。

736:蟻人間
19/10/08 00:32:11.48 LPLIE15X.net
拡張子.batはコマンドプロンプトのバッチファイルを表す。

737:デフォルトの名無しさん
19/10/08 01:09:42.27 LQA6uDl1.net
URLリンク(ideone.com)
C++&.

738:デフォルトの名無しさん
19/10/08 01:10:33.04 LQA6uDl1.net
>>720
C++&Windows.
おかしなキーコンビネーションで投稿してしまったが、それは置いといて。
結構な沼だったわ。

739:デフォルトの名無しさん
19/10/08 01:14:29.28 LQA6uDl1.net
あ、数秒後にタスクを実行したかったが、分単位にしかならないようだ。

740:デフォルトの名無しさん
19/10/08 01:31:36.46 YlPtBjRn.net
どM乙。

741:デフォルトの名無しさん
19/10/08 02:43:45.63 LQA6uDl1.net
URLリンク(ideone.com)
C++&Windows. 結局バッチ作ってバッチを削除するようにした。

742:デフォルトの名無しさん
19/10/08 02:45:57.47 LQA6uDl1.net
C++で書いている意味があまりないなぁ。
頭がこんがらがってくるわ。

743:デフォルトの名無しさん
19/10/08 03:07:50.37 LQA6uDl1.net
タスクスケジューラには一個のタスクしか持たせることができません。
タスクスケジューラの健康のために削除タスクと削除タスクをkillするタスクを入れたという欲が出ました。
さて、どうすればよかったのでしょうか・・・。

744:デフォルトの名無しさん
19/10/08 03:25:53.77 LQA6uDl1.net
URLリンク(ideone.com)
チョットシンプルになった。
けど、ただスケジュールして


745:バッチファイル作るだけになっちゃった・・・。Orz ううううううぼぉぉぉおあぁぁぁあああ。。。



746:デフォルトの名無しさん
19/10/08 18:18:17.33 9WsdIwSr.net
おしい

747:デフォルトの名無しさん
19/10/08 22:43:05.75 8UaWwWzr.net
「インターネットには戦力外通告とかが無いから頭の悪い人がいつまでも打席に立って三振し続ける」

748:デフォルトの名無しさん
19/10/09 01:57:50.31 vwSn6CxZ.net
お題: TCPデータグラムが流れてくるのでFINフラグが立っていたら「切断します」と出力せよ

749:デフォルトの名無しさん
19/10/10 00:51:51.46 P0sO6qGI.net
>>729
IT分野の実社会では、単価にそれほど差がないのをいいことに
パーフォマンダウンによる差額で利ざやを稼ごうという
商売が横行して、結果としてIT分野が廃れている
だから。こまけーこたー いいんだよ

750:デフォルトの名無しさん
19/10/10 19:10:08.63 Tobvh7XK.net
>>703
Windows10で、普通に↓で消せた。
URLリンク(ideone.com)

751:デフォルトの名無しさん
19/10/10 19:12:56.39 AtKsFWU7.net
>>690 解けた人いない?

752:デフォルトの名無しさん
19/10/10 19:14:39.08 0pYFH17C.net
>>733
手では解いた
総当たり以外に思い浮かばん

753:デフォルトの名無しさん
19/10/10 20:46:59.80 78OW/ryc.net
いやお題はパズルを解けじゃなくてパズルのソルバーの実装だからwww

754:蟻人間
19/10/10 21:25:17.60 VnnXeZwz.net
古典的な人工知能の探索アルゴリズムを研究すれば、この程度のソルバーは作れる。

755:デフォルトの名無しさん
19/10/10 21:48:13.15 PZRS9XbT.net
つまり研究しないと作れないってことか。

756:デフォルトの名無しさん
19/10/10 23:09:22.63 gSAdFsTs.net
>>735
だから総当たり以外思い浮かばなかったって言ってるだろ

757:デフォルトの名無しさん
19/10/11 00:08:49.38 1+VMU1fD.net
>>690
ここの↓にすごい悩んだ。
URLリンク(regexcrossword.com)
Ambiguousの意味を知らずに・・・・・

758:デフォルトの名無しさん
19/10/11 01:56:11.32 H4pwkZny.net
いや総当たりでも出来たなら貼ってくれや。
別に総当たりでも恥ずかしくもなんともないと思うが…

759:デフォルトの名無しさん
19/10/11 08:53:45.55 MNDgolhS.net
貼りたくねえ
総当たり出できたものを他人のために見せる必要性もないし

760:デフォルトの名無しさん
19/10/11 09:03:11.12 Cra8acMD.net
できた!
みせて。
見せたくない!
うーん…

761:デフォルトの名無しさん
19/10/11 09:08:21.86 pcktkYLP.net
;フェルマーの最終定理

762:デフォルトの名無しさん
19/10/11 21:55:54.61 zKaC3xv0.net
お題:0~9999の整数について数字和を求め、数字和の頻度を集計せよ
ocaml
URLリンク(ideone.com)
c
URLリンク(ideone.com)
octave
URLリンク(ideone.com)
ruby
URLリンク(ideone.com)

763:
19/10/11 22:38:20 hqLUiXPo.net
>>744
URLリンク(ideone.com)
C++。最初サンプルと違う答えになってビビったけど、俺のコードがバグっていた・・・。Orz

764:デフォルトの名無しさん
19/10/11 22:44:43.53 poa9EnRO.net
すんごく二項定理っぽい数字の並び方をしてる

765:
19/10/11 23:16:02 GtQsvrI7.net
>>744 Java
URLリンク(ideone.com)

プログラミングのお題スレ Part9 [無断転載禁止](c)2ch.net
スレリンク(tech板:134番)-136
昔書いたこれ(上の136)を流用

766:デフォルトの名無しさん
19/10/11 23:53:28.54 jSXBX1w1.net
>>744
これって0~9999じゃなくて任意の2つの数字入力させてとかだと愚直に計算するしかない?

767:デフォルトの名無しさん
19/10/12 00:32:58.46 Cxdg6QkN.net
>>748
うまくやれば出来そうだがまだ思いつかん

768:
19/10/12 11:04:47 ewC1g8Dg.net
>>744 Pharo/Squeak Smalltalk

| bag |
bag := Bag new.
(0 to: 9) asDigitsToPower: 4 do: [:digits | bag add: digits sum].
^ bag sortedElements

"=> {0->1 . 1->4 . 2->10 . 3->20 . 4->35 . 5->56 .
6->84 . 7->120 . 8->165 . 9->220 . 10->282 .
11->348 . 12->415 . 13->480 . 14->540 . 15->592 .
16->633 . 17->660 . 18->670 . 19->660 . 20->633 .
21->592 . 22->540 . 23->480 . 24->415 . 25->348 .
26->282 . 27->220 . 28->165 . 29->120 . 30->84 .
31->56 . 32->35 . 33->20 . 34->10 . 35->4 . 36->1} "

769:
19/10/12 11:07:06 ewC1g8Dg.net
いかん。すまん。出力が安価になってしまった。

770:デフォルトの名無しさん
19/10/12 11:31:04.69 zNYc1jm8.net
lol

771:デフォルトの名無しさん
19/10/12 11:52:28.41 msiQ/n9S.net
>>750
@Mathematica
Range[0, 9999] //
 Map[IntegerDigits, #] & //
 Map[Total, #] & //
 Tally
{{0, 1}, {1, 4}, {2, 10}, {3, 20}, {4, 35}, {5, 56}, {6, 84},
 {7, 120}, {8, 165}, {9, 220}, {10, 282}, {11, 348}, {12, 415},
 {13, 480}, {14, 540}, {15, 592}, {16, 633}, {17, 660}, {18, 670},
 {19, 660}, {20, 633}, {21, 592}, {22, 540}, {23, 480}, {24, 415},
 {25, 348}, {26, 282}, {27, 220}, {28, 165}, {29, 120}, {30, 84},
 {31, 56}, {32, 35}, {33, 20}, {34, 10}, {35, 4}, {36, 1}}

772:
19/10/12 13:09:50 Nq/Z/R6A.net
>>744 perl

use List::Util qw(sum);
$h{sum(split"")}++ for(0..9999);
map{print"$_ $h{$_}\n"}sort{$a<=>$b}keys%h;

773:デフォルトの名無しさん
19/10/12 13:25:43.66 VvSWBOR5.net
>>748 言われた通りの改定問題
X,Yが与えられる。
X以上Y以下の連続する整数で、数字和の頻度。
もっとも大きい頻度はいくつか。
制約 0 <= X < Y <= 5000億
1) 0 9999 --> 670
  合計18が、670ある。>>744の入力値
2) 1234567 9876543 --> 459034
3) 1 500000000000 --> 20406732610
4) 12345678909 498765432123 --> 20000965162
※Y-Xが MAX5000億なので愚直(力技)はきつい。
※頻度表は"桁数*9"程度あるので、最高値出力のみに変更

774:
19/10/12 17:47:36 Nq/Z/R6A.net
頻度の階差を取った
0~9999だと三角数
0~99999だと三角錐数
になる

775:
19/10/12 18:44:18 I5ZWyiFj.net
>>740
>>741じゃねーけど総当りもどきで解いてみた
URLリンク(ideone.com)
URLリンク(i.imgur.com)
さすがにフルに総当りするととても終わりそうにないのでちょっとズルして各マスに入る文字を正規表現に使われている"ABCDEFGHMNORXYZ"に限定した
(ソースの217行目)
Celeron 1005M 1.9GHzのしょぼいノートPCで1,386秒(23分)程度だった

776:デフォルトの名無しさん
19/10/12 19:36:00.00 vBnCHMzu.net
>>757
すんごい
実行時間もすんごい…

777:
19/10/12 19:59:28 hTj/2FIT.net
>>754 Perl5、計算量を減らしたアルゴリズム

sub f {
 @s = @_;
 for $l (1..9) {
  $s[$_ + $l] += $_[$_] for 0..$#_;
 } @s }
@b = f f f f 1;
print "$_,$b[$_] " for 0..$#b;

実行結果
~ $ perl 15_774_digit_sum_1.pl
0,1 1,4 2,10 3,20 4,35 5,56 6,84 7,120 8,165 9,220 10,282 11,348 12,415 13,480 14,540 15,592 16,633 17,660 18,670 19,660 20,633 21,592 22,540 23,480 24,415 25,348 26,282 27,220 28,165 29,120 30,84 31,56 32,35 33,20 34,10 35,4 36,1

もっと減らしたアルゴリズムを考えたい気もするけど、
これで一回投稿

778:
19/10/12 20:06:37 hTj/2FIT.net
>>759
アンカーしくった、>>744 だった…ゴメンね

779:
19/10/12 20:24:43 1DgZSjUc.net
白状すると単にrubyで書きたいだけのお題だったんだけど
(Array#repeated_permutationを使いたいだけ)
みんな色々面白いこと考えるもんだね

780:蟻人間
19/10/13 14:56:19.23 w8oKE2gz.net
お題: ストップウォッチを作れ。
最初にEnterキーを押すとスタート。
次にEnterキーを押すとストップ。
経過した時間を表示する。

781:
19/10/13 15:28:31 XFDKT5kN.net
>>744 Python
URLリンク(ideone.com)
――-

import pandas as pd

array = []
for i in range(0,10000):
array.append(sum(list(map(int,str(i)))))

srv =pd.Series(array).value_counts().sort_index()

print(srv)

782:
19/10/13 17:38:11 qg/TNtNV.net
>>762
URLリンク(ideone.com)
C++。ストップウオッチ自体は大分前にC#をパクって作ってあったありあわせだ。

783:デフォルトの名無しさん
19/10/13 21:07:01 w512EwKm.net
>>755 C
URLリンク(ideone.com)
一応Y = LLONG_MAXまでできる、あってるか知らんが
ただのスパゲッティになってしもた

784:デフォルトの名無しさん
19/10/14 01:02:32 Ws6GlsT+.net
>>744
Kotlin
URLリンク(paiza.io)

785:デフォルトの名無しさん
19/10/14 02:00:45.97 Ws6GlsT+.net
>>762
Kotlin
まずは仕様通りのもの。
fun main() {
 val br = System.`in`.bufferedReader()
 br.readLine()
 val t0 = System.nanoTime()
 br.readLine()
 val t1 = System.nanoTime()
 val t = t1 - t0
 println("%d.%09d".format(t / 1000000000L, t % 1000000000))
}
しかしこれでは途中経過が出てこなくて�


786:ツまらない。ということでこれ。 fun main() {  val br = System.`in`.bufferedReader()  br.readLine()  val t0 = System.nanoTime()  while (true) {   if (br.ready()) {    val c = br.read()    if (c == '\n'.toInt())     break   }   val t1 = System.nanoTime()   val t = t1 - t0   print("%d.%09d\r".format(t / 1000000000L, t % 1000000000))  }  println() }



787:デフォルトの名無しさん
19/10/14 07:53:19.70 kizbcx2j.net
お題
2^511-1の真約数をひとつ求める
URLリンク(mainichi.jp)

788:デフォルトの名無しさん
19/10/14 08:39:26.54 6P2fe30E.net
>>768
そのニュース関係なくね?

789:デフォルトの名無しさん
19/10/14 08:53:29.04 z/6QW2Tk.net
実は素数でした
とかいう形?

790:デフォルトの名無しさん
19/10/14 09:34:48.23 6P2fe30E.net
>>770
511 = 7 * 73 だから 2^511 - 1 は素数ではない

791:
19/10/14 09:38:05 6P2fe30E.net
というか2^73-1で割り切れる

792:
19/10/14 15:57:50 eo8SsHS2.net
>>771-772
それは 2^511-1 は 2^7-1 でも割り切れることを主張しているのですか?

793:デフォルトの名無しさん
19/10/14 16:21:24.99 CCU+9UFO.net
>>773
それ以外にどう読めるんだよアホか

794:デフォルトの名無しさん
19/10/14 20:26:24.40 ead7I0ur.net
>>773
2^511-1 = 2進数で1が511個 = 2進数で1111111が73個並んだ形
2^511-1を2^7-1で割ったら2進数で0000001が73個並んだ形
ってことじゃろ

795:蟻人間
19/10/14 20:53:54.75 O0QR+doO.net
プログラミングから一気に整数論へダイブ

796:
19/10/14 21:23:44 eo8SsHS2.net
>>774-775
2^{ab}-1 = (2^a-1)(1 + 2a + 2^2a + 2^3a + ... + 2^(b-1)a)
と因数分解できるんですね…
thx a lot.

797:
19/10/14 22:14:18 hXRtCJE+.net
必死に5時間検索しまくったのか・・・

798:
19/10/15 01:03:22 LXkkA+L3.net
もう何処かのチャレンジ問題を議論するスレでも良いのでは?

799:デフォルトの名無しさん
19/10/15 01:28:25.21 4KtvCQDg.net
お題: お題スレの過去スレからお題をランダムに選択し出力するプログラムを作成せよ

800:
19/10/15 15:09:04 WmSwVXlW.net
QZの醜態を全部晒すプログラムを作成せよ

801:
19/10/15 15:25:10 YTs2ZIZB.net
>>781
w3m スレリンク(tech板) | ~/bin/select_word_and_ancher.pl QZaw55cn4c
URLリンク(pastebin.com)
URLリンク(i.imgur.com)

802:デフォルトの名無しさん
19/10/15 16:06:38.33 Ogt2CAsV.net
>>782
くそわろた

803:デフォルトの名無しさん
19/10/16 01:16:39.26 bAHdrVWX.net
>>755 python
URLリンク(ideone.com)
ほぼ典型っぽいので、桁DPで解く。
遊びで (X,Y)=(0, 10^100)を実行してみる

804:デフォルトの名無しさん
19/10/16 01:58:29.60 OEkTBx4G.net
あらら仕事にかまけてほったらかしていたら
先こされちゃったな感

805:デフォルトの名無しさん
19/10/16 02:04:49.25 5tDJE0Z9.net
QZは自分がキチガイということは全然自覚してないんだろうな

806:デフォルトの名無しさん
19/10/16 08:36:01.98 Mi1dGaVf.net
>>786 自覚はあるらしいよ。

807:
19/10/16 16:11:48 EcYqpM5S.net
QZが自身をキチガイだと認識しているのならば、QZはキチガイという言葉の正しい意味を理解していない

808:デフォルトの名無しさん
19/10/16 16:58:30.92 NsS1/fO1.net
誰が見てもQZは頭がおかしいよ

809:
19/10/16 20:10:11 JF94p0Fe.net
>>789
どういうところが「頭がおかしい」と思ったのですか?

810:
19/10/17 01:44:31 QhHbr34y.net
>>790
周囲が迷惑している行為や的外れで頓珍漢な言動をした際にそれを指摘しても、分からないから具体的に言えという。普通の人からすれば明らかな場合であろうと。
そして具体的に説明しても、自分はそう感じないから理解しない、納得しないと言い、言動を改めない。

本人の中では論理的整合性がとれた言動なのかも知れないが、周囲からすれば会話ができない困った奴に見える。

811:
19/10/17 02:01:41 Wp46MCu9.net
朝鮮人に特有な行為だね

812:デフォルトの名無しさん
19/10/17 02:18:55.29 E+5qu981.net
他人の迷惑考えずこんなの貼っちゃう奴だしな
848 ◆QZaw55cn4c  sage 2019/07/20(土) 08:18:17.29 ID:jbjCUWIF
お題と回答
5 : 6 10 32 36 44
9 : 15 34 35 79
まんま>>791に該当するわ

813:
19/10/17 09:29:19 yTQXhZUg.net
複素数の多価関数を何度説明しても理解してなかったし脳に欠陥があるのだろう

814:
19/10/17 12:35:29 MLKesy/P.net
多価関数を理解できなかったのかwww
じゃあリーマン面も分からないだろうな
そんな状態で一丁前に「留数定理」とのたまうから頭おかしい

815:デフォルトの名無しさん
19/10/17 16:53:38 H8l94EK2.net
>>744
Kotlin
>>766をほんのちょっと改造
URLリンク(paiza.io)

816:
19/10/17 19:46:20 LNHzPSkK.net
>>795
>そんな状態で一丁前に「留数定理」とのたまう
多分、それは「留数定理は忘れた」という文脈以外ではいったことがないと思いますよ

>>794
「何度も」説明を受けた覚えはありませんよ、むしろ意図的に答えを隠されたような隔靴掻痒的なほのめかししかなかったと記憶しています

>>793
問題を明確に指摘された後は、その貼り付けは実施していないのですが

>>794
今はすべてを実数に限定した線形微分方程式ですらとても苦しんでいるので、複素解析/j関数論とかは当分無理だと思います、関数論のいい教科書があれば教えてください

817:
19/10/17 20:10:25 Fo0iAhjp.net
>>797
あれだけ明瞭な説明を受けて理解できないどころかはぐらかされたと感じるならばお前は脳の病気だな

818:デフォルトの名無しさん
19/10/17 22:10:55.40 lFPJOlZz.net
5chなんて無駄にマウント取るやつばっかりだから、コテつけてごちゃごちゃ言っても時間の無駄だぞ
袋叩きにあうだけ

819:デフォルトの名無しさん
19/10/18 01:24:53 RRRrLQ0r.net
自演擁護乙。

820:蟻人間
19/10/18 23:48:51.61 981JMrNY.net
気を取り直していくぞ。
お題: 現在時刻のアナログ時計のSVG画像を出力せよ。丸い外枠と短針と長針だけでいいが、可能なら秒針と文字盤も表示せよ。

821:デフォルトの名無しさん
19/10/19 02:49:07.69 PZMkyc4n.net
暇な人向けのお題:なるべく公正な多数決システムを考案せよ。
サンプル:URLリンク(ideone.com)
上記は多数決して、3人サンプルして、じゃんけんする。というプロセスで導き出される。

822:デフォルトの名無しさん
19/10/19 18:44:38.13 PZMkyc4n.net
暇な人向けのお題II!
9x9のセルが与えられる。そのセルは磁石である。
真空状態での磁気シミュレーションをして量子コンピュータに近似せよ。
一つの万能ではない方針。
1パス目で相互作用を足し込む。
2パス目で相互作用の蓄積を作用素数で割る。
ライフゲームがヒントになるかもしれない。

823:デフォルトの名無しさん
19/10/19 18:45:19.24 PZMkyc4n.net
>>803
なお、自分は物理学も数学も素人である。。。Orz

824:デフォルトの名無しさん
19/10/21 08:37:49 HKPBZHRe.net
お題
入力された正整数を漢数字表記にして出力せよ
10の何乗まで対応するかは任せる

514 -> 五百十四
131072 -> 十三万千七十二
90010 -> 九万十

825:デフォルトの名無しさん
19/10/21 09:41:08 5iZNWaQ2.net
>>805 python

%pip install kanjize
from kanjize import in


826:t2kanji, kanji2int print(int2kanji(123456789)) # 一億二千三百四十五万六千七百八十九



827:デフォルトの名無しさん
19/10/21 09:45:18 HKPBZHRe.net
>>806
そんなのあるのか…

828:デフォルトの名無しさん
19/10/21 13:26:32 Yxovtd3S.net
perlの時代には既に存在した

829:デフォルトの名無しさん
19/10/21 13:31:36 W7vxtZcq.net
じゃあunicodeにシュメル文字が収録されたので、それで。
フフフ、ライブラリなんてあるまい

830:デフォルトの名無しさん
19/10/21 13:35:10 ZDMJHUdn.net
>>809 Python

%pip install sumerianize
from fumerianize import int2sumerian, sumerian2int
print(int2sumerian(123456789))
# ????????????????????????

831:デフォルトの名無しさん
19/10/21 13:39:33 n9VxwF2L.net
あんのかよワロタw

832:デフォルトの名無しさん
19/10/21 13:45:48 qqa/WroJ.net
逆も欲しいな
漢数字を入れるとアラビア数字に変換するプログラム

833:デフォルトの名無しさん
19/10/21 13:49:33 BDK5iYLM.net
表示できてなくて笑う

834:デフォルトの名無しさん
19/10/21 13:50:52 hy8thByE.net
>>805
それと同じお題を以前出した覚えがある。
まあいいか。スレ見に来てる人も変わってるだろうし。

835:デフォルトの名無しさん
19/10/21 16:23:33 5iZNWaQ2.net
>>813 表示できていないのは見る人がフォントを入れていないからだろ。 不思議でも何でもない。

836:デフォルトの名無しさん
19/10/21 16:37:23.10 lI38JOob.net
>>812
それと同じお題も過去にあったような。双方向で変換ってやつかな。
まだやったことない人なら頭の体操(またはボケ防止)にはなるからやってみると良いと思う。

837:デフォルトの名無しさん
19/10/21 17:22:20.45 Yxovtd3S.net
>>812
漢数字変換 - Perl表技集
URLリンク(www2u.biglobe.ne.jp)
これですな

838:デフォルトの名無しさん
19/10/21 20:27:05.91 niRnsl0k.net
実はcpanからお題を決めてるんじゃないかなというのがしばらく続いてたと思う

839:デフォルトの名無しさん
19/10/21 22:35:38 9OcWZn69.net
ローマ数字との変換、は簡単か

840:デフォルトの名無しさん
19/10/21 22:41:08 tcnN+Hr+.net
何回か出てる。

841:デフォルトの名無しさん
19/10/21 23:57:16.86 PlH6WJHg.net
適当な整数を入力してそれが円周率の何桁目で出てくるか出力せよ。
何桁まで対応するかは任せる。

842:デフォルトの名無しさん
19/10/22 00:08:15 TSqT/b7n.net
perl だと m/digit/p からの $^{prematch} とかだな

843:デフォルトの名無しさん
19/10/22 12:07:39.33 rZX4V0+4.net
>>821 Perl5、小数点以下10000桁まで一番最初に見つかった桁を出力
$d = 893; # 適当な整数
use Math::BigFloat try => 'GMP,Pari';
$pi = Math::BigFloat->bpi(10000);
#print "$pi\n";
$pi =~ s/\.//; # 小数点「.」を除去
$i = index $pi, $d;
print $i < 0 ? "無し\n" : "小数点以下 $i 桁目\n";

実行結果
~ $ perl 15_821.pl
小数点以下 999 桁目

844:デフォルトの名無しさん
19/10/22 12:11:07.49 wZUXcjF6.net
あきらかにNP問題だから解く気がしねえ

845:デフォルトの名無しさん
19/10/22 12:40:06.09 E1qN728j.net
じゃあNP問題だと証明しろよ

846:デフォルトの名無しさん
19/10/22 13:54:00.39 rZX4V0+4.net
>>823
一度にある桁まで求めておいてから検索するよりも、
ガウス=ルジャンドルのアルゴリズムまたはラマヌジャンの式を使うなどして
下の桁まで収束を進めながら検索してゆく方が面白かったかな

847:デフォルトの名無しさん
19/10/22 16:09:06.09 0ZM3PvBa.net
>>825
キチガイすぎて草

848:デフォルトの名無しさん
19/10/22 19:15:47.41 /ue0mcGS.net
ぬるぽ問題

849:デフォルトの名無しさん
19/10/22 19:35:05.18 JpCkwFny.net
じゃあそれにしよう。
適当な文章を入力して縦横斜めにぬるぽの3文字が入っていればガッと出力す


850:る。 ひらがなだけにするかそれ以上の対応をするかは任せる。



851:デフォルトの名無しさん
19/10/22 23:37:52.31 0ZM3PvBa.net
>>829 Python
%pip install nurupo
from nurupo import nurupofield
if nurupofield("ぬるぽ")
print("ガッ")
# ガッ

852:デフォルトの名無しさん
19/10/23 00:32:58.65 65oBAktI.net
pythonなんでも揃ってんな・・・

853:デフォルトの名無しさん
19/10/23 20:25:56.13 LcbXQT4h.net
お題:整数配列の奇数要素のみをソートした配列を返す処理を書いてください
入力例:[6, 5, 4, 3, 2, 1]
出力例:[6, 1, 4, 3, 2, 5]

854:デフォルトの名無しさん
19/10/23 20:53:09.53 oBmkNBH8.net
>>832 octave
URLリンク(ideone.com)

855:デフォルトの名無しさん
19/10/23 20:53:23.91 65oBAktI.net
奇数だけ抜き出した配列作成→ソート→元の配列の奇数の位置にソートした配列の要素を入れてくだけで良さそう

856:デフォルトの名無しさん
19/10/23 20:54:52.29 oBmkNBH8.net
あ、ダメだこれw
失礼しました

857:833
19/10/23 21:05:23.34 oBmkNBH8.net
>>832 octave
URLリンク(ideone.com)

858:デフォルトの名無しさん
19/10/23 22:37:14.26 PSSarBFK.net
>>832 Perl5
@s = (6, 5, 4, 3, 2, 1);
@ix = grep{$s[$_] & 1} keys @s;
@iy = sort{$s[$a] <=> $s[$b]} @ix;
@s[@ix] = @s[@iy];
use Data::Dump 'dump';
print dump @s;
実行結果
~ $ perl 15_832_sort_odd_elem.pl
(6, 1, 4, 3, 2, 5)

859:デフォルトの名無しさん
19/10/24 08:28:31.82 5RTZY+Zo.net
>>832 J
f =: 3 : 0
a =. I. 2 | y
b =. /:~ a { y
b (a) } y
)
f 6 5 4 3 2 1
6 1 4 3 2 5

860:デフォルトの名無しさん
19/10/24 09:51:33.40 76TAYxNw.net
>>832
p [6, 5, 4, 3, 2, 1].partition.with_index{|_, i| i.even?}.then{|e, o| e.zip(o.sort).flatten}
# => [6, 1, 4, 3, 2, 5]

861:デフォルトの名無しさん
19/10/24 09:51:53.30 76TAYxNw.net
>>839 Ruby 2.6.0

862:デフォルトの名無しさん
19/10/24 12:04:34.69 yRKIAYVV.net
>>839
[6, 5, 3, 2, 1] とかだと結果が間違っている上、nilとか足されてひどいことになるyo?
p [6, 5, 3, 2, 1].partition.with_index{|_, i| i.even?}.then{|e, o| e.zip(o.sort).flatten}
# => [6, 2, 3, 5, 1, nil]
正しくは => [6, 1, 3, 2, 5]

863:デフォルトの名無しさん
19/10/24 15:41:34.92 gElHX+jG.net
>>832
Kotlin
URLリンク(paiza.io)
やり方は >>834 に書かれている通り。
しかし、もっとスマートな方法はないものか?
ありそうだが思い浮かばない。

864:デフォルトの名無しさん
19/10/24 16:54:57.81 ZpMPcQ0n.net
>>842
配列コピーしない場合奇数が出たらその後の要素を見て一番小さい奇数と要素の交換でもどう?
配列のコピー不要や。

865:デフォルトの名無しさん
19/10/24 21:24:20.41 YtgvOVKx.net
>>832 ruby
URLリンク(ideone.com)
>>832 ocaml
URLリンク(ideone.com)

866:デフォルトの名無しさん
19/10/24 23:20:25.74 33G0+sWg.net
>>838
さすがJニキ、さっぱりわからん…

867:デフォルトの名無しさん
19/10/25 00:26:52.21 GgLEjF73.net
アプリ作成したいのですが、素人なのでどなたか相談に乗ってください。
飲み物が入ったコップを定期的に重量を量り、
そのデータを無線で受信してサーバーで記録し
プロットするアプリを作りたいです。
またRaspiなどのPCはなしで作りたいのですが
組み込みPC?を使わないとできませんか?
またこういったアプリに適した言語などありますでしょうか?

868:デフォルトの名無しさん
19/10/25 00:32:12.57 D+sRag4r.net
プログラム部分はたいしたことがないとおもうのだが
装置、ハードのほうが大事だろ
そもそもプログラムもハード依存するかもしれないし



869:チに既成品なら



870:デフォルトの名無しさん
19/10/25 00:48:27.50 GgLEjF73.net
ありがとうございます。
ハードウェアの知識が全く無いため困っています。
飼い猫のために水の量を管理してあげたいんです。
下記のような組み合わせで出来そうでしょうか?
ADコンバータ
KKHMF HX711モジュール 秤量センサー 24位精度ADモジュール 圧力センサーモジュール
重量センサー
uxcell 計量ロードセル アルミ合金材質 500g計量 電子天秤 有線 計量センサー

871:デフォルトの名無しさん
19/10/25 03:57:48.67 uJcHRouN.net
やり方わからないんだけど、カメラで撮影して映像解析して量が分かるのであればスマホやタブレット用のアプリでできそうだよね。
(PCに小さいカメラ付けても良いが)。

872:デフォルトの名無しさん
19/10/25 04:08:18.02 rztx2iSz.net
>>848
適切なスレに移動した方がいいぞ

873:デフォルトの名無しさん
19/10/25 09:43:45.15 C/odSq3f.net
センサーの話題などは、Linux 板のラズパイのスレで聞けば?

874:デフォルトの名無しさん
19/10/25 09:56:31.28 VVjeWd6A.net
>>848
適当なIoTの計り買えば解決
実装はCだろうな

875:デフォルトの名無しさん
19/10/25 11:49:06.01 C/odSq3f.net
>>832
Ruby で、
input_ary = [ 6, 5, 4, 3, 2, 1 ]
odd_ary = [ ]; index_ary = [ ]
input_ary.each_with_index do |num, idx|
if num.odd?
odd_ary.push num
index_ary.push idx
end
end
odd_ary.sort! # ソート
# 同時に、複数の配列をループする
index_ary.zip( odd_ary ).each { |idx, num| input_ary[ idx ] = num }
p input_ary

876:デフォルトの名無しさん
19/10/25 12:30:51.02 GgLEjF73.net
>> 849 , 850, 851, 852
情報ありがとうございます。
スレチだったみたいで申し訳ないです。
センサーありきなので、Raspiは使わないと思うのですが
板覗いてみます。

877:デフォルトの名無しさん
19/10/25 14:59:52.83 ylwTeYJx.net
>>832
URLリンク(ideone.com)
C++。クイックソート書けないので謎のソートでお茶を濁す。

878:デフォルトの名無しさん
19/10/26 01:38:30 o5w2ifn2.net
お題: 端末上で(´・ω・`)を端から端まで移動し、往復させよ
ただし、端についたら(´・ω・`)は増幅し(´・ω・`)(´・ω・`)になる
同様に再び端についたら(´・ω・`)(´・ω・`)は増幅し(´・ω・`)(´・ω・`)(´・ω・`)になる
左右に移動できなくなる又ははみ出す場合は逆に(´・ω・`)を減らしていき、最終的に(´・ω・`)を消滅させよ

879:デフォルトの名無しさん
19/10/26 06:24:17 2eoY+VbT.net
お題: Unicode 1 文字を与えると East Asian Width に従った属性値を返す関数を作成し、その関数に対して任意の文字を与えてテストするプログラムを作れ。
返す属性値の F, H, W, Na, A, N は文字列でも良いし対応する数値でも良いし enum のような(またはCなら #define されている)名前でも良い。
East Asian Width の一覧は下記URLのテキストの内容を使用する。これを最初に読んで初期化するように作っても良いし、最初からプログラムに適した形式で埋め込まれていても良い。
URLリンク(www.unicode.org)
参考: 東アジアの文字幅
URLリンク(ja.wikipedia.org)

880:デフォルトの名無しさん
19/10/26 07:11:59 I0XoRu/q.net
お題:>>832 に「偶数要素は2で割って降順ソート」という要件を追加してください
すでに回答済


881:みの場合は最少限の変更でのご対応で腕(もしくは言語のポテンシャル)を見せてください



882:デフォルトの名無しさん
19/10/26 07:27:04.95 I0XoRu/q.net
>>858
入力例:[0, 9, 8, 4, 6, 5, 1, 2, 7, 3]
出力例:[4, 1, 3, 2, 1, 3, 5, 0, 7, 9]

883:デフォルトの名無しさん
19/10/26 11:01:29.07 /Rj6VhaF.net
>>832 Pharo/Squeak Smalltalk
| fn |
fn := [:arr |
| sortedOdds |
sortedOdds := (arr select: #odd) sort readStream.
arr collect: [:x | x odd ifTrue: [sortedOdds next] ifFalse: [x]]
].
fn value: #(6 5 4 3 2 1) "=> #(6 1 4 3 2 5) "

>>835
| fn |
fn := [:arr |
| sortedOdds sortedHalfEvens |
sortedOdds := (arr select: #odd) sort readStream.
sortedHalfEvens := ((arr select: #even) sort reversed / 2) readStream.
arr collect: [:x | x odd ifTrue: [sortedOdds next] ifFalse: [sortedHalfEvens next]]
].
fn value: #(0 9 8 4 6 5 1 2 7 3) "=> #(4 1 3 2 1 3 5 0 7 9) "

884:デフォルトの名無しさん
19/10/26 11:03:35.88 /Rj6VhaF.net
>>860
×835 → ○>>858

885:デフォルトの名無しさん
19/10/26 11:45:52.80 4aRwI3hq.net
>>859 Perl5、最小限でか…
@s = (0, 9, 8, 4, 6, 5, 1, 2, 7, 3);
@ix = grep{$s[$_] & 1} keys @s;
@iy = sort{$s[$a] <=> $s[$b]} @ix;
@s[@ix] = @s[@iy];
@iz = grep{~$s[$_] & 1} keys @s;
@s[@iz] = map{$_ / 2} reverse sort{$a <=> $b} @s[@iz];
use Data::Dump 'dump';
print dump @s;
実行結果
~ $ perl 15_859.pl
(4, 1, 3, 2, 1, 3, 5, 0, 7, 9)

886:デフォルトの名無しさん
19/10/26 12:12:03.02 Zgyrlv2c.net
>>832,858
@Mathematica
URLリンク(ideone.com)

887:デフォルトの名無しさん
19/10/26 12:22:15.14 GFiKSQ9h.net
>>856
Porwershell。バージョンによってはプロンプト画面に直接貼り付けると$sの文字列が
化けるので、その場合はファイルに保存して実行。
$s = "('・ω・``)"
$w = $Host.UI.RawUI.WindowSize.Width - 1
$m = [Math]::Floor($w / 10)
foreach ($n in 1..$m + ($m - 1)..0) {
  $d = $w - 10 * $n
  foreach ($x in (($d..1), (1..$d))[$n % 2]) {
    $l = "`r" + " " * $x + $s * $n + " " * ($d - $x)
    Write-Host $l -NoNewline
    if (!$n) {Write-Host; break}
    Sleep -m 20
  }
}

888:デフォルトの名無しさん
19/10/26 13:49:47.32 f6JeNzn+.net
Mathematica12
定義
f1[a_]:=SubsetMap[Sort,a,Position[a,_?OddQ,1]]
f2[a_]:=SubsetMap[ReverseSort[#]/2&,f1[a],Position[a,_?EvenQ,1]]
実行結果
f1[{6,5,4,3,2,1}]
{6,1,4,3,2,5}
f2[{0,9,8,4,6,5,1,2,7,3}]
{4,1,3,2,1,3,5,0,7,9}

889:デフォルトの名無しさん
19/10/26 17:08:24.41 kYj2w42l.net
>>832, >>858 Ruby
f = -> ary {
  e, o = ary.partition(&:even?).map(&:sort)
  ary.map{|v| v.even? ? v : o.shift}
}
g = -> ary {
  e, o = ary.partition(&:even?).map(&:sort)
  ary.map{|v| v.even? ? e.pop >> 1 : o.shift}
}
p f[[6, 5, 4, 3, 2, 1]] # => [6, 1, 4, 3, 2, 5]
p g[[0, 9, 8, 4, 6, 5, 1, 2, 7, 3]] # => [4, 1, 3, 2, 1, 3, 5, 0, 7, 9]

890:デフォルトの名無しさん
19/10/26 20:25:43.01 XXeS+kK0.net
>>858 c
URLリンク(ideone.com)

891:デフォルトの名無しさん
19/10/26 22:02:49.24 +YWUVQNg.net
>>856
URLリンク(ideone.com)
C++。なんか表示位置ずれるなーと思ったら、「()」これ半角じゃねーか。
そのせいで、プログラムが持ってる長さと表示の長さが合わなかった。
しかし、汚くなった無し、思ったより時間がかかってしまった。

892:デフォルトの名無しさん
19/10/26 22:16:30.14 FFSD3o8O.net
>>858 octave
URLリンク(ideone.com)
>>858 ruby
URLリンク(ideone.com)
>>858 ocaml
URLリンク(ideone.com)

893:デフォルトの名無しさん
19/10/26 22:21:47.70 +YWUVQNg.net
>>858
URLリンク(ideone.com)
C++。前のヤツに関数足した。
オーダーが倍になったが改修だとこんなもんだ。

894:蟻人間
19/10/26 22:38:02.04 Q5f3


895:+aYX.net



896:デフォルトの名無しさん
19/10/26 22:38:38.76 T/HAOzs9.net
tree

897:デフォルトの名無しさん
19/10/26 22:46:14.97 a/Ne+y1n.net


898:蟻人間
19/10/26 23:33:25.57 0HLEEd3+.net


899:デフォルトの名無しさん
19/10/26 23:36:46.58 Up+ppHZL.net


900:デフォルトの名無しさん
19/10/26 23:56:14.95 mT+r0MIT.net


901:デフォルトの名無しさん
19/10/27 01:42:02 98GTxTrH.net


902:デフォルトの名無しさん
19/10/27 01:48:49 hTxWtEZY.net


903:デフォルトの名無しさん
19/10/27 02:14:55 qZK0Jir5.net


904:デフォルトの名無しさん
19/10/27 12:00:30.73 czi1K5eV.net
>>858-859
PowerShell
$a = 0, 9, 8, 4, 6, 5, 1, 2, 7, 3
$b = 0, 0
$i = 0, 0
$odd = {$_ % 2}
$b[0] = @($a |? {!(&$odd)} |% {$_ / 2} | sort -descending)
$b[1] = @($a |? {&$odd} | sort)
$c = $a |% {$b[(&$odd)][$i[(&$odd)]++]}
"入力: [" + ($a -join ", ") + "]"
"出力: [" + ($c -join ", ") + "]"

905:デフォルトの名無しさん
19/10/27 21:46:52.77 JAeIkS65.net
>>858 c
URLリンク(ideone.com)

906:デフォルトの名無しさん
19/10/28 14:33:15.95 kjzN6NI8.net
>>858-859
Haxe で、
URLリンク(try.haxe.org)

907:デフォルトの名無しさん
19/10/28 21:54:57.80 UPe4TNxT.net
Common Lisp
>>832
(let* ((l '(6 5 4 3 2 1))
    (odds (sort (remove-if-not #'oddp l) #'<)))
 (mapcar (lambda (x) (if (oddp x) (pop odds) x)) l))
>>858-859
(let* ((l '(0 9 8 4 6 5 1 2 7 3))
    (odds (sort (remove-if-not #'oddp l) #'<))
    (evens (sort (remove-if-not #'evenp l) #'>)))
 (mapcar (lambda (x) (if (oddp x) (pop odds) (/ (pop evens) 2))) l))

908:蟻人間
19/10/28 22:20:53.11 9dus/Ppg.net
Linuxにこんなコマンドあんのかよお?
URLリンク(www.adminweb.jp)

909:デフォルトの名無しさん
19/10/28 22:33:53.27 cHOU2eIF.net
>>871
Powershell。標準のtreeコマンドと違い、システム/隠しフォルダも表示する。
バージョンによってはプロンプト画面に貼り付けると罫線文字が消えてしまうので、
その場合はps1ファイルに保存して実行するか、PowerShell ISEに貼り付ける。
function MyTree($path, $branch)
{
 if (!$branch) {$path}
 $dir = @(ls -Force -PSPath $path -EV e -EA SilentlyContinue |? {$_.PSIsContainer})
 if ($e) {$branch + "::アクセス不可"}
 if (!$dir) {return}
 0..($last = $dir.Count - 1) |% {
  $branch + ("├─", "└─")[$_ -eq $last] + $dir[$_].Name
  MyTree $dir[$_].FullName ($branch + ("│ ", "  ")[$_ -eq $last])
 }
}
MyTree "C:\Windows"

910:デフォルトの名無しさん
19/10/28 23:08:40.85 F/Wh8ChL.net
>>884
100年前からあるよ

911:デフォルトの名無しさん
19/10/28 23:13:15.22 uBs49FGp.net
色わけもされているのが良くあり、たいへん見やすい

912:蟻人間 ◆T6xkBnTXz7B0
19/10/29 01:01:17 CdNgVa0z.net
お題: 平面(0, 0)-(100,100)上に点を100個、配置する。k-means法を用いて点の集合を3つのグループに分け、それらを図示せよ。

913:デフォルトの名無しさん
19/10/29 08:42:30.06 CowX2GWO.net
>>858-859
Ruby で、
input_ary = [ 0, 9, 8, 4, 6, 5, 1, 2, 7, 3 ]
even_ary, odd_ary = input_ary.partition( &:even? ) # 偶数・奇数配列
odd_ary.sort! # 奇数要素をソート
# 偶数要素は、2で割って降順ソート
even_ary.map! { |num| num / 2 }
even_ary.sort!
even_ary.reverse!
p results = input_ary.map { |num| num.even? ? e


914:ven_ary.shift : odd_ary.shift } # 偶数・奇数



915:デフォルトの名無しさん
19/10/29 11:11:57.21 8fHMSau6.net
やっぱり初心者にはまず黒い画面のCUIからやらせたほうがいいな

916:デフォルトの名無しさん
19/10/29 18:19:47.29 BWleRN1J.net
設定で白い画面にすると心が和らぐかも知れない

917:デフォルトの名無しさん
19/10/29 18:42:27.40 plxF2L4V.net
目がクラッシュ

918:デフォルトの名無しさん
19/10/29 21:04:32.22 OodB9NB8.net
日本標準時2100に起動し、Web上から文字列「惣流・アスカ・ラングレー」を含む.jpgファイルもしくは.jpegあるいは.pingファイルをC:秘蔵に1GB分保存するコードを教えてください

919:デフォルトの名無しさん
19/10/29 21:19:03.11 zdS42c06.net
式波だろオッサン

920:デフォルトの名無しさん
19/10/29 22:05:19.10 xXVEd4hK.net
>>893
0 21 * * * sudo less BigWeb | grep アスラン・ザラ > home/C/H_file limit 1GB

921:デフォルトの名無しさん
19/10/29 22:18:10.10 VtVeF5OO.net
>>893
firebird -t0:21:0:0 --everyday --query 惣流・アスカ・ラングレー --suffix "jpg|jpeg|ping" --dst "C:\secret" --limit 1GB

922:デフォルトの名無しさん
19/10/30 00:58:38.18 VQ6oDJg7.net
pingファイルわらた

923:デフォルトの名無しさん
19/10/30 04:42:26 LML0ucqT.net
アイが隠っている

924:デフォルトの名無しさん
19/11/01 22:31:20.50 5BPqTvCN.net
お題: 3^3^3^... のような反復指数を10の反復指数に近似するプログラムを作成しなさい。
入力されるそれぞれの指数は1より大きい実数とします。
計算後の最も右の指数xは 1<x≦10 としてください。
例:
3^3^3^3^3^3 = 10^10^10^10^10^1.099
2.718^2.718^2.718^2.718^7.705 = 10^10^10^10^2.983
(5.0e+50)^(6.0e+60)^(7.0e+70)^(8.0e+80)^(9.0e+90) = 10^10^10^10^10^10^1.968
1.1^1.1^1.1^1.1^1.1 = 1.112

925:デフォルトの名無しさん
19/11/01 23:58:48.16 Yq8XY12s.net
a^n = b^x を解く問題でいいじゃん

926:蟻人間
19/11/02 13:25:33.62 OyXmLdGY.net
>>899
演算子^は、左結合、それとも右結合?

927:デフォルトの名無しさん
19/11/02 14:21:37.47 ZDjpW1U6.net
>>901
右結合です
a^b^c => a^(b^c)
無論 ^はべき乗の演算子です。

928:蟻人間
19/11/02 16:24:06.83 3ZL9CX49.net
10^1~10^10で二分探索を繰り返しかな?

929:デフォルトの名無しさん
19/11/02 17:38:05.70 q/Mbih9P.net
>>899
URLリンク(ideone.com)
C++。あってるか知らんけど、知識を動員して解いてみたんだけど、あってる?
三の3乗を6回やったら、doubleでinfになるので解けねーわ。うわわーん。

930:デフォルトの名無しさん
19/11/02 18:12:47.84 41WzS7Cc.net
>>904
コード一切読んでないけどお前のは間違ってると思うよ

931:デフォルトの名無しさん
19/11/02 18:39:57.30 q/Mbih9P.net
>>905
意味が解らん。
まぁ、いいけど。

932:デフォルトの名無しさん
19/11/02 19:40:47.26 0iFQzt0L.net
>>899
PowerShellで最初の2例だけ。
function lg($x) {[Math]::log10($x)}
function pow($x, $y) {[Math]::pow($x, $y)}
function tetrconv($a)
{
$k = lg ((pow $a[-2] $a[-1]) * (lg $a[-3]) + (lg (lg $a[-4])))
$b = @(10) * ($a.count - 1) + [Math]::round($k, 3)
($a -join "^") + " = " + ($b -join "^")
}
tetrconv (@(3) * 6)
tetrconv (@(2.718) * 4 + 7.705)

933:デフォルトの名無しさん
19/11/02 21:32:51.49 0iFQzt0L.net
>>899
最後の2例にも対応した。
function lg($x) {[Math]::log10($x)}
function pow($x, $y) {[Math]::pow($x, $y)}
function tetrconv($a)
{
  $k = $a[-1]
  foreach ($i in -2..-$a.count) {
    if ($k -gt 10) {break}
    $k = pow $a[$i] $k
  }
  if ($i - 1 -ge -$a.count) {$k *= lg $a[$i - 1]}
  if ($i - 2 -ge -$a.count) {$k += lg (lg $a[$i - 2])}
  while ($k -gt 10) {
    $k = lg $k
    $i++
  }
  if ($i += $a.count) {$i++}
  $b = @(10) * $i + [Math]::round($k, 3)
  ($a -join "^") + " = " + ($b -join "^")
}
tetrconv (@(3) * 6)
tetrconv (@(2.718) * 4 + 7.705)
tetrconv (5.0e50, 6.0e60, 7.0e70, 8.0e80, 9.0e90)
tetrconv (@(1.1) * 5)

934:デフォルトの名無しさん
19/11/03 00:32:05.95 ORedds2P.net
偶数の場合は半分に、奇数の場合は3倍して1加算して結果が1になるまでその数値を出力してください。
1まで出力して完了です。
単純だけど、どこまで短く書ける?

935:デフォルトの名無しさん
19/11/03 00:36:48.03 ZBjdhNSI.net
>>909
コラッツ予想はもうおなかいっぱいだわ

936:デフォルトの名無しさん
19/11/03 12:57:12.82 ax9Okew1.net
コラッて怒れば良いんじゃないかな

937:デフォルトの名無しさん
19/11/03 13:57:01.56 mZU6qafh.net
>>909
URLリンク(ideone.com)
C++。ショートコーダじゃないから短めに書いて、24行。

938:デフォルトの名無しさん
19/11/03 15:49:54.73 kVBOYkVG.net
>>909
C#
URLリンク(ideone.com)
短く書こうとする気すらないw

939:デフォルトの名無しさん
19/11/03 18:50:15.71 6KV8hNPc.net
縦と横のサイズが与えられるのでアスペクト比を求めよ

940:デフォルトの名無しさん
19/11/03 20:03:15.96 PuBKYFzC.net
比は整数のみ?

941:デフォルトの名無しさん
19/11/03 21:50:08.17 rJL4Vpjg.net
>>899
別の入力値 (例えば@(1.7) * 5や@(1.5) * 14) を試してみたら出力値がおかしかったので修正。
function lg($x) {[Math]::log10($x)}
function pow($x, $y) {[Math]::pow($x, $y)}
function tetrconv($a)
{
  $k = 1
  foreach ($i in ($a.count - 1)..0) {
    $k = pow $a[$i] $k
    if ($k -gt 20) {break}
  }
  if ($i -ge 1) {$k *= lg $a[$i - 1]}
  if ($i -ge 2) {$k += lg (lg $a[$i - 2])}
  while ($k -gt 10) {
    $k = lg $k
    $i++
  }
  $b = @(10) * $i + [Math]::round($k, 3)
  ($a -join "^") + " = " + ($b -join "^")
}
tetrconv (@(3) * 6)
tetrconv (@(2.718) * 4 + 7.705)
tetrconv (5.0e+50, 6.0e+60, 7.0e+70, 8.0e+80, 9.0e+90)
tetrconv (@(1.1) * 5)

942:デフォルトの名無しさん
19/11/04 07:30:04.95 T8mOMaiU.net
お題:
m から n までの整数のうち、桁数字の和が s になるものをすべて列挙する
関数を書け。
具体的に:
1 から 100 までの整数のうち、桁数字の和が 12 になるものは、
39、48、57、66、75、84、93 である。
関数の実行例:
f(1, 100, 12) → [39, 48, 57, 66, 75, 84, 93]

943:デフォルトの名無しさん
19/11/04 10:20:33.30 xKwnPcPn.net
数列和好きだね これで何回目だ?
数列和求めて何か嬉しいのか? 簡易計算ミスを防げるとか

944:デフォルトの名無しさん
19/11/04 10:51:39.60 FzGFhotx.net
>>917 perl
なんの捻りもない
use List::Util qw(sum);
print join",",(grep{sum(split//)==12}(1..100));

945:デフォルトの名無しさん
19/11/04 12:37:41.26 7wrIz40y.net
>>918
数列和?
いきなりオレオレ用語で語られても困るw

946:デフォルトの名無しさん
19/11/04 14:30:03.94 obVJwnOe.net
>>917
URLリンク(ideone.com)
C++。割といつも通りという感じ。

947:デフォルトの名無しさん
19/11/04 19:33:38.63 xKwnPcPn.net
タイポ
数字和 >744 などにでてくるやつ

948:デフォルトの名無しさん
19/11/04 19:35:11.53 6jo2x8my.net
>>917
PowerShellで単純に書けば
function f($a, $b, $s) {$a..$b |? {(iex ([char[]]"$_" -join "+")) -eq $s}}
f 1 100 12
だが、桁が増えると遅すぎるので、少し工夫すると、
$M = [Math]
function g($s, $n)
{
  if ($n -eq 1) {return $s}
  $d = $M::pow(10, $n - 1)
  for ($i = $M::max(0, $s - 9 * ($n - 1)); $i -le $M::min(9, $s); $i++) {
    g ($s - $i) ($n - 1) |% {$d * $i + $_}
  }
}
function f($a, $b, $s)
{
g $s ($M::ceiling($M::log10($b))) |? {$_ -ge $a -and $_ -le $b}
}
f 1 10000000 12

949:デフォルトの名無しさん
19/11/04 19:36:29.94 6jo2x8my.net
7桁まではまあまあだが8桁以上だと遅いので、Cで書き換えると9桁でも瞬時に終わった。
(出力をファイルにリダイレクトした場合)。Visual Studioでは動作するが、
ideone.comでは変なコンパイラエラーが発生する。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void g(int a, int b, int s, int n, int t, int x)
{
  int d, i;
  if (n == 0) {
    if (t == s && x >= a && x <= b) printf("%d\n", x);
  } else {
    for (d = i = 1; i < n; i++) d *= 10;
    for (i = max(0, (s - t) - 9 * (n - 1)); i <= min(9, s - t); i++) {
      g(a, b, s, n - 1, t + i, d * i + x);
    }
  }
}
void f(int a, int b, int s)
{
  g(a, b, s, ceil(log10(b)), 0, 0);
}
int main(void)
{
  f(1, 1000000000, 12);
  return 0;
}

950:デフォルトの名無しさん
19/11/05 01:53:14.53 gnRgB6kn.net
>>909
Kotlin
URLリンク(paiza.io)
肝心な部分は短いよな・・・

951:デフォルトの名無しさん
19/11/05 20:14:32.31 e+hxAdfR.net
お題:グラフの最長距離探索プログラムを作りなさい。分からなければダイクストラの最短距離探索プログラムを改造して作りなさい。

952:デフォルトの名無しさん
19/11/05 20:40:24.45 3L71zPwH.net
>>926
全探索になるから辛い。
X以上になったら打ち切りとかできないし、枝がX個以上なら切るとかもできない。

953:デフォルトの名無しさん
19/11/05 21:02:19.16 3L71zPwH.net
枝じゃなかった。支点だった。

954:デフォルトの名無しさん
19/11/05 22:48:36.11 4YhU7TUN.net
>>917
Common Lisp
(defun f (m n s)
 (print (loop for i from m to n
        if (= s (loop for (j k) = (multiple-value-list (floor i 10)) then (multiple-value-list (floor j 10))
               sum k
               until (zerop j)))
        collect i)))
(f 1 100 12)

955:デフォルトの名無しさん
19/11/07 19:42:24.48 wJeAdMrJ.net
>>917
Kotlin
URLリンク(paiza.io)
ひねりなし。

956:デフォルトの名無しさん
19/11/07 22:47:28.91 Iq2Mem9/.net
>>924を読み返してみたら、1変数減らしてすっきりさせられることに気付いた。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
void g(int a, int b, int r, int n, int x)
{
  int d, i;
  if (n == 0) {
    if (r == 0 && x >= a && x <= b) printf("%d\n", x);
  } else {
    d = pow(10, n - 1);
    for (i = max(0, r - 9 * (n - 1)); i <= min(9, r); i++) {
      g(a, b, r - i, n - 1, d * i + x);
    }
  }
}
void f(int a, int b, int s)
{
  g(a, b, s, ceil(log10(b)), 0);
}
int main(void)
{
  f(1, 1000000000, 12);
  return 0;
}

957:デフォルトの名無しさん
19/11/10 21:37:46.78 OK7x/7YO.net
文字コードがシフトJISでもUnicodeでも3つ以上の連番となる文字列(最長一致)を、
コード範囲とともにすべて表示せよ。例えば、それらのうちの1つに関する表示は、
824F..8258
FF10..FF19
01234566789
となる。なお、シフトJISには機種依存文字を含んで構わない。

958:デフォルトの名無しさん
19/11/10 21:57:20.43 uvNl/


959:eaa.net



960:デフォルトの名無しさん
19/11/10 22:09:53.56 OK7x/7YO.net
>>933
それも機種依存で構わない。規格上の厳密さにこだわる必要はない。

961:デフォルトの名無しさん
19/11/10 23:26:27.72 EkgZPBq1.net
>>932 Java
URLリンク(ideone.com)
これでいいのけ?

962:デフォルトの名無しさん
19/11/11 00:44:57.23 VmjibYtT.net
バイナリファイルの高速コンペア

963:デフォルトの名無しさん
19/11/11 18:33:43.09 KK646YuM.net
>>936
メモリに二つとも呼んでfor回す。意外は難しい気がする。

964:デフォルトの名無しさん
19/11/11 19:03:14.97 KK646YuM.net
>>917
URLリンク(ideone.com)
C++。一回解いたけど再考して配列一個潰した。
5秒で5000万位解けそう??

965:デフォルトの名無しさん
19/11/11 22:23:08.18 ySONYK72.net
>>936
単に一致不一致だけわかればいいのか?
とか
コンペアするファイルは2つだけなのか?
とか
単に2つのファイルの一致不一致を見るだけなら基本>>937の言う通りだと思う

966:デフォルトの名無しさん
19/11/11 22:37:18.90 hxYpUSvR.net
>>935
正解。Windowsには機種依存文字
8754..875D
2160..2169
ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ
などもあるが、機種依存文字を含んでも構わないという出題だったので、
含まなくてもOK。

967:デフォルトの名無しさん
19/11/12 05:31:26.51 oeG9wEYf.net
お題
スレ立てるまでもない質問はここで 152匹目
スレリンク(tech板)
の3番の問題を勝手に解く

968:デフォルトの名無しさん
19/11/12 12:11:13.05 BJKXTHw+.net
>>940 Java
URLリンク(ideone.com)
>>935からCharasetをShift-JISからx-SJIS_0213に変えただけ (Windowsだとx-MS932_0213のほう?)
Shift-JISだと古いやつなんやな

969:デフォルトの名無しさん
19/11/12 21:37:48.42 +gLjUv3x.net
>>941
処理データ量が少なく計算効率を考慮しなくて良いなら、Rで簡潔に書ける。
URLリンク(ideone.com)
効率が求められるなら、Cで二分探索の変形版だな。
URLリンク(ideone.com)

970:デフォルトの名無しさん
19/11/12 22:38:04.89 SyoIDDRx.net
windowsのロングパス対応の重複ファイル検索するコードない?

971:デフォルトの名無しさん
19/11/13 04:07:44 eXHRJefh.net
>>941 Pharo/Squeak Smalltalk

| fn |

fn := [:m |
| table |
table := #(98 100 198 200 250 298).
table detectMin: [:x | (x - m) abs]
].

fn value: 50. "=> 98 "
fn value: 195. "=> 198 "

972:デフォルトの名無しさん
19/11/13 14:07:45.70 9sxFrKBI.net
>>941
URLリンク(ideone.com)
C++。多分動いてるけど、境界線系のエラーハンドリングは適当。

973:デフォルトの名無しさん
19/11/13 15:30:27.12 EqcpRCSG.net
どう考えても線形探索の方が簡単で速い
1回だけなら

974:デフォルトの名無しさん
19/11/13 18:24:57.67 utJBi2wY.net
>>941 Lua
function f(a, x)
local res = a[1]
for i = 2, #a do
if math.abs(res - x) > math.abs(a[i] - x) then
res = a[i]
end
end
return res
end

975:
19/11/13 20:03:11.45 ESFhNQze.net
>>944
スレリンク(tech板:53番)

976:デフォルトの名無しさん
19/11/13 20:28:42.98 6mLuLK4e.net
>>941 octave
URLリンク(ideone.com)

977:デフォルトの名無しさん
19/11/13 20:40:25.65 H1DP2m/6.net
>>944
>>1002

978:デフォルトの名無しさん
19/11/13 20:48:13.08 CMaH4qd1.net
>>941
C++ならSTLのequal_rangeを使えば、二分探索のコードを自前で書かずに済む。
URLリンク(ideone.com)
この例の条件でしか判定しないなら、5つの定数値との比較にするのが一番簡単で
速そうだな。
URLリンク(ideone.com)

979:デフォルトの名無しさん
19/11/13 21:39:03.09 Fqkv69gY.net
なんで順番に5回も比較してんの?

980:デフォルトの名無しさん
19/11/13 21:47:59.14 kE3A4AyF.net
10回比較するわけにはいかないからでしょ

981:デフォルトの名無しさん
19/11/13 21:53:11.46 RzCRvdkP.net
まずは199との比較では?
あとは範囲を絞ったテーブルとか
int全てをカバーするテーブルも
intが32bitな64bit環境なら一応は可能

982:蟻人間
19/11/13 22:09:59.79 SHPlbPC2.net
お題: 自動塗り絵。
白地に黒い線で図形が描かれているモノクロ画像が与えられる。
白い領域をそれぞれ適当な単色で塗りつぶせ。可能ならOpenCVを使ってもいい。

983:デフォルトの名無しさん
19/11/13 22:51:59.05 RzCRvdkP.net
ペイントブラシ + スクリプト
で出来そう

984:デフォルトの名無しさん
19/11/13 23:03:48.70 CMaH4qd1.net
>>955
「一番速い」ではなく「一番簡単で速い」だからね。可読性とかバグの
混入しにくさとかも考えると、順番に5回比較するのが一番良いだろ。
特に URLリンク(mevius.2ch.net) への
回答としては、最も適している。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch